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