23 #ifndef M2M_M2MB_TYPES_H 24 #define M2M_M2MB_TYPES_H 29 #if !defined(NOT_STD_TYPE) 56 #define NULL ((void*)0) 101 #define M2MB_ALIGN( x , size ) ( ( ( MEM_W )(x) + size - 1 ) & ( ~( ( MEM_W )size - 1 ) ) ) 104 #if !defined(WE310_BUILD_GCC) 119 #define EXPANDXY(x,y) x,y 121 #define ARG_LENGTH(...) EXPANDX(ARG_LENGTH__(__VA_ARGS__)) 122 #define ARG_LENGTH__(...) EXPANDX(ARG_LENGTH_(,__VA_ARGS__, \ 124 59, 58, 57, 56, 55, 54, 53, 52, 51, 50,\ 125 49, 48, 47, 46, 45, 44, 43, 42, 41, 40,\ 126 39, 38, 37, 36, 35, 34, 33, 32, 31, 30,\ 127 29, 28, 27, 26, 25, 24, 23, 22, 21, 20,\ 128 19, 18, 17, 16, 15, 14, 13, 12, 11, 10,\ 129 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)) 131 #define ARG_LENGTH_(_, \ 133 _59, _58, _57, _56, _55, _54, _53, _52, _51, _50,\ 134 _49, _48, _47, _46, _45, _44, _43, _42, _41, _40,\ 135 _39, _38, _37, _36, _35, _34, _33, _32, _31, _30,\ 136 _29, _28, _27, _26, _25, _24, _23, _22, _21, _20,\ 137 _19, _18, _17, _16, _15, _14, _13, _12, _11, _10,\ 138 _9, _8, _7, _6, _5, _4, _3, _2, _1, Count, ...) EXPANDX(Count) 141 #define ARG_EVEN(...) EVEN_DROP_TYPE(ARG_LENGTH(__VA_ARGS__),__VA_ARGS__) 142 #define EVEN_DROP_TYPE(n,...) EVEN_DROP_TYPE_(n,__VA_ARGS__) 143 #define EVEN_DROP_TYPE_(n,...) EVEN_DROP_TYPE_##n(__VA_ARGS__) 145 #define EVEN_DROP_TYPE_2(arg1,arg2,...) arg2 146 #define EVEN_DROP_TYPE_4(arg1,arg2,...) arg2, EVEN_DROP_TYPE_2(__VA_ARGS__) 147 #define EVEN_DROP_TYPE_6(arg1,arg2,...) arg2, EVEN_DROP_TYPE_4(__VA_ARGS__) 148 #define EVEN_DROP_TYPE_8(arg1,arg2,...) arg2, EVEN_DROP_TYPE_6(__VA_ARGS__) 149 #define EVEN_DROP_TYPE_10(arg1,arg2,...) arg2, EVEN_DROP_TYPE_8(__VA_ARGS__) 150 #define EVEN_DROP_TYPE_12(arg1,arg2,...) arg2, EVEN_DROP_TYPE_10(__VA_ARGS__) 151 #define EVEN_DROP_TYPE_14(arg1,arg2,...) arg2, EVEN_DROP_TYPE_12(__VA_ARGS__) 152 #define EVEN_DROP_TYPE_16(arg1,arg2,...) arg2, EVEN_DROP_TYPE_14(__VA_ARGS__) 153 #define EVEN_DROP_TYPE_18(arg1,arg2,...) arg2, EVEN_DROP_TYPE_16(__VA_ARGS__) 154 #define EVEN_DROP_TYPE_20(arg1,arg2,...) arg2, EVEN_DROP_TYPE_18(__VA_ARGS__) 155 #define EVEN_DROP_TYPE_22(arg1,arg2,...) arg2, EVEN_DROP_TYPE_20(__VA_ARGS__) 156 #define EVEN_DROP_TYPE_24(arg1,arg2,...) arg2, EVEN_DROP_TYPE_22(__VA_ARGS__) 157 #define EVEN_DROP_TYPE_26(arg1,arg2,...) arg2, EVEN_DROP_TYPE_24(__VA_ARGS__) 158 #define EVEN_DROP_TYPE_28(arg1,arg2,...) arg2, EVEN_DROP_TYPE_26(__VA_ARGS__) 159 #define EVEN_DROP_TYPE_30(arg1,arg2,...) arg2, EVEN_DROP_TYPE_28(__VA_ARGS__) 160 #define EVEN_DROP_TYPE_32(arg1,arg2,...) arg2, EVEN_DROP_TYPE_30(__VA_ARGS__) 161 #define EVEN_DROP_TYPE_34(arg1,arg2,...) arg2, EVEN_DROP_TYPE_32(__VA_ARGS__) 162 #define EVEN_DROP_TYPE_36(arg1,arg2,...) arg2, EVEN_DROP_TYPE_34(__VA_ARGS__) 163 #define EVEN_DROP_TYPE_38(arg1,arg2,...) arg2, EVEN_DROP_TYPE_36(__VA_ARGS__) 164 #define EVEN_DROP_TYPE_40(arg1,arg2,...) arg2, EVEN_DROP_TYPE_38(__VA_ARGS__) 167 #define ARG_ODD(...) ODD_DROP_TYPE(ARG_LENGTH(__VA_ARGS__),__VA_ARGS__) 168 #define ODD_DROP_TYPE(n,...) ODD_DROP_TYPE_(n,__VA_ARGS__) 169 #define ODD_DROP_TYPE_(n,...) ODD_DROP_TYPE_##n(__VA_ARGS__) 172 #define ODD_DROP_TYPE_2(arg1,arg2,...) arg1 173 #define ODD_DROP_TYPE_4(arg1,arg2,...) arg1, ODD_DROP_TYPE_2(__VA_ARGS__) 174 #define ODD_DROP_TYPE_6(arg1,arg2,...) arg1, ODD_DROP_TYPE_4(__VA_ARGS__) 175 #define ODD_DROP_TYPE_8(arg1,arg2,...) arg1, ODD_DROP_TYPE_6(__VA_ARGS__) 176 #define ODD_DROP_TYPE_10(arg1,arg2,...) arg1, ODD_DROP_TYPE_8(__VA_ARGS__) 177 #define ODD_DROP_TYPE_12(arg1,arg2,...) arg1, ODD_DROP_TYPE_10(__VA_ARGS__) 178 #define ODD_DROP_TYPE_14(arg1,arg2,...) arg1, ODD_DROP_TYPE_12(__VA_ARGS__) 179 #define ODD_DROP_TYPE_16(arg1,arg2,...) arg1, ODD_DROP_TYPE_14(__VA_ARGS__) 180 #define ODD_DROP_TYPE_18(arg1,arg2,...) arg1, ODD_DROP_TYPE_16(__VA_ARGS__) 181 #define ODD_DROP_TYPE_20(arg1,arg2,...) arg1, ODD_DROP_TYPE_18(__VA_ARGS__) 182 #define ODD_DROP_TYPE_22(arg1,arg2,...) arg1, ODD_DROP_TYPE_20(__VA_ARGS__) 183 #define ODD_DROP_TYPE_24(arg1,arg2,...) arg1, ODD_DROP_TYPE_22(__VA_ARGS__) 184 #define ODD_DROP_TYPE_26(arg1,arg2,...) arg1, ODD_DROP_TYPE_24(__VA_ARGS__) 185 #define ODD_DROP_TYPE_28(arg1,arg2,...) arg1, ODD_DROP_TYPE_26(__VA_ARGS__) 186 #define ODD_DROP_TYPE_30(arg1,arg2,...) arg1, ODD_DROP_TYPE_28(__VA_ARGS__) 187 #define ODD_DROP_TYPE_32(arg1,arg2,...) arg1, ODD_DROP_TYPE_30(__VA_ARGS__) 188 #define ODD_DROP_TYPE_34(arg1,arg2,...) arg1, ODD_DROP_TYPE_32(__VA_ARGS__) 189 #define ODD_DROP_TYPE_36(arg1,arg2,...) arg1, ODD_DROP_TYPE_34(__VA_ARGS__) 190 #define ODD_DROP_TYPE_38(arg1,arg2,...) arg1, ODD_DROP_TYPE_36(__VA_ARGS__) 191 #define ODD_DROP_TYPE_40(arg1,arg2,...) arg1, ODD_DROP_TYPE_38(__VA_ARGS__) 195 #define CMDS( ... ) ARG_LENGTH(__VA_ARGS__), __VA_ARGS__ 205 #define CMDS_ARGS( ... ) (ARG_LENGTH(__VA_ARGS__)/2), ARG_ODD(__VA_ARGS__), ARG_EVEN(__VA_ARGS__) 207 #define ENUM_TO_INT(Prefix) \ 208 MIN_ENUM_##Prefix=(int)0x80000000,\ 209 MAX_ENUM_##Prefix=(int)0x7FFFFFFF
unsigned long long UINT64