23 #ifndef M2M_M2MB_TYPES_H
24 #define M2M_M2MB_TYPES_H
27 #if !defined(NOT_STD_TYPE)
39 #define UNUSED_1( a ) ( void )a
40 #define UNUSED_2( a, b ) ( void )a; ( void )b
41 #define UNUSED_3( a, b, c ) ( void )a; ( void )b; ( void )c
42 #define UNUSED_4( a, b, c, d ) ( void )a; ( void )b; ( void )c; ( void )d
48 #define M2MB_ALIGN( x , size ) ( ( ( MEM_W )(x) + size - 1 ) & ( ~( ( MEM_W )size - 1 ) ) )
52 #define NULL ((void*)0)
57 #define M2MB_MIN( a, b ) ( ( (a) < (b) ) ? (a) : (b) )
61 #define M2MB_MAX( a, b ) ( ( (a) > (b) ) ? (a) : (b) )
67 #define ARG_LENGTH(...) ARG_LENGTH__(__VA_ARGS__)
68 #define ARG_LENGTH__(...) ARG_LENGTH_(,__VA_ARGS__, \
70 59, 58, 57, 56, 55, 54, 53, 52, 51, 50,\
71 49, 48, 47, 46, 45, 44, 43, 42, 41, 40,\
72 39, 38, 37, 36, 35, 34, 33, 32, 31, 30,\
73 29, 28, 27, 26, 25, 24, 23, 22, 21, 20,\
74 19, 18, 17, 16, 15, 14, 13, 12, 11, 10,\
75 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
79 #define ARG_LENGTH_(_, \
81 _59, _58, _57, _56, _55, _54, _53, _52, _51, _50,\
82 _49, _48, _47, _46, _45, _44, _43, _42, _41, _40,\
83 _39, _38, _37, _36, _35, _34, _33, _32, _31, _30,\
84 _29, _28, _27, _26, _25, _24, _23, _22, _21, _20,\
85 _19, _18, _17, _16, _15, _14, _13, _12, _11, _10,\
86 _9, _8, _7, _6, _5, _4, _3, _2, _1, Count, ...) Count
91 #define ARG_EVEN(...) EVEN_DROP_TYPE(ARG_LENGTH(__VA_ARGS__),__VA_ARGS__)
92 #define EVEN_DROP_TYPE(n,...) EVEN_DROP_TYPE_(n,__VA_ARGS__)
93 #define EVEN_DROP_TYPE_(n,...) EVEN_DROP_TYPE_##n(__VA_ARGS__)
95 #define EVEN_DROP_TYPE_2(arg1,arg2,...) arg2
96 #define EVEN_DROP_TYPE_4(arg1,arg2,...) arg2, EVEN_DROP_TYPE_2(__VA_ARGS__)
97 #define EVEN_DROP_TYPE_6(arg1,arg2,...) arg2, EVEN_DROP_TYPE_4(__VA_ARGS__)
98 #define EVEN_DROP_TYPE_8(arg1,arg2,...) arg2, EVEN_DROP_TYPE_6(__VA_ARGS__)
99 #define EVEN_DROP_TYPE_10(arg1,arg2,...) arg2, EVEN_DROP_TYPE_8(__VA_ARGS__)
100 #define EVEN_DROP_TYPE_12(arg1,arg2,...) arg2, EVEN_DROP_TYPE_10(__VA_ARGS__)
101 #define EVEN_DROP_TYPE_14(arg1,arg2,...) arg2, EVEN_DROP_TYPE_12(__VA_ARGS__)
102 #define EVEN_DROP_TYPE_16(arg1,arg2,...) arg2, EVEN_DROP_TYPE_14(__VA_ARGS__)
103 #define EVEN_DROP_TYPE_18(arg1,arg2,...) arg2, EVEN_DROP_TYPE_16(__VA_ARGS__)
104 #define EVEN_DROP_TYPE_20(arg1,arg2,...) arg2, EVEN_DROP_TYPE_18(__VA_ARGS__)
105 #define EVEN_DROP_TYPE_22(arg1,arg2,...) arg2, EVEN_DROP_TYPE_20(__VA_ARGS__)
106 #define EVEN_DROP_TYPE_24(arg1,arg2,...) arg2, EVEN_DROP_TYPE_22(__VA_ARGS__)
107 #define EVEN_DROP_TYPE_26(arg1,arg2,...) arg2, EVEN_DROP_TYPE_24(__VA_ARGS__)
108 #define EVEN_DROP_TYPE_28(arg1,arg2,...) arg2, EVEN_DROP_TYPE_26(__VA_ARGS__)
109 #define EVEN_DROP_TYPE_30(arg1,arg2,...) arg2, EVEN_DROP_TYPE_28(__VA_ARGS__)
110 #define EVEN_DROP_TYPE_32(arg1,arg2,...) arg2, EVEN_DROP_TYPE_30(__VA_ARGS__)
111 #define EVEN_DROP_TYPE_34(arg1,arg2,...) arg2, EVEN_DROP_TYPE_32(__VA_ARGS__)
112 #define EVEN_DROP_TYPE_36(arg1,arg2,...) arg2, EVEN_DROP_TYPE_34(__VA_ARGS__)
113 #define EVEN_DROP_TYPE_38(arg1,arg2,...) arg2, EVEN_DROP_TYPE_36(__VA_ARGS__)
114 #define EVEN_DROP_TYPE_40(arg1,arg2,...) arg2, EVEN_DROP_TYPE_38(__VA_ARGS__)
117 #define ARG_ODD(...) ODD_DROP_TYPE(ARG_LENGTH(__VA_ARGS__),__VA_ARGS__)
118 #define ODD_DROP_TYPE(n,...) ODD_DROP_TYPE_(n,__VA_ARGS__)
119 #define ODD_DROP_TYPE_(n,...) ODD_DROP_TYPE_##n(__VA_ARGS__)
122 #define ODD_DROP_TYPE_2(arg1,arg2,...) arg1
123 #define ODD_DROP_TYPE_4(arg1,arg2,...) arg1, ODD_DROP_TYPE_2(__VA_ARGS__)
124 #define ODD_DROP_TYPE_6(arg1,arg2,...) arg1, ODD_DROP_TYPE_4(__VA_ARGS__)
125 #define ODD_DROP_TYPE_8(arg1,arg2,...) arg1, ODD_DROP_TYPE_6(__VA_ARGS__)
126 #define ODD_DROP_TYPE_10(arg1,arg2,...) arg1, ODD_DROP_TYPE_8(__VA_ARGS__)
127 #define ODD_DROP_TYPE_12(arg1,arg2,...) arg1, ODD_DROP_TYPE_10(__VA_ARGS__)
128 #define ODD_DROP_TYPE_14(arg1,arg2,...) arg1, ODD_DROP_TYPE_12(__VA_ARGS__)
129 #define ODD_DROP_TYPE_16(arg1,arg2,...) arg1, ODD_DROP_TYPE_14(__VA_ARGS__)
130 #define ODD_DROP_TYPE_18(arg1,arg2,...) arg1, ODD_DROP_TYPE_16(__VA_ARGS__)
131 #define ODD_DROP_TYPE_20(arg1,arg2,...) arg1, ODD_DROP_TYPE_18(__VA_ARGS__)
132 #define ODD_DROP_TYPE_22(arg1,arg2,...) arg1, ODD_DROP_TYPE_20(__VA_ARGS__)
133 #define ODD_DROP_TYPE_24(arg1,arg2,...) arg1, ODD_DROP_TYPE_22(__VA_ARGS__)
134 #define ODD_DROP_TYPE_26(arg1,arg2,...) arg1, ODD_DROP_TYPE_24(__VA_ARGS__)
135 #define ODD_DROP_TYPE_28(arg1,arg2,...) arg1, ODD_DROP_TYPE_26(__VA_ARGS__)
136 #define ODD_DROP_TYPE_30(arg1,arg2,...) arg1, ODD_DROP_TYPE_28(__VA_ARGS__)
137 #define ODD_DROP_TYPE_32(arg1,arg2,...) arg1, ODD_DROP_TYPE_30(__VA_ARGS__)
138 #define ODD_DROP_TYPE_34(arg1,arg2,...) arg1, ODD_DROP_TYPE_32(__VA_ARGS__)
139 #define ODD_DROP_TYPE_36(arg1,arg2,...) arg1, ODD_DROP_TYPE_34(__VA_ARGS__)
140 #define ODD_DROP_TYPE_38(arg1,arg2,...) arg1, ODD_DROP_TYPE_36(__VA_ARGS__)
141 #define ODD_DROP_TYPE_40(arg1,arg2,...) arg1, ODD_DROP_TYPE_38(__VA_ARGS__)
146 #define CMDS( ... ) ARG_LENGTH(__VA_ARGS__), __VA_ARGS__
156 #define CMDS_ARGS( ... ) (ARG_LENGTH(__VA_ARGS__)/2), ARG_ODD(__VA_ARGS__), ARG_EVEN(__VA_ARGS__)
160 #define ENUM_TO_INT(Prefix) \
161 MIN_ENUM_##Prefix=(int)0x80000000,\
162 MAX_ENUM_##Prefix=(int)0x7FFFFFFF
178 #if ( !defined(_M2M_TYPE_H) || defined(TEST_IN_AZ) )
181 typedef float FLOAT32;
182 typedef double FLOAT64;
183 #if ( defined(NOT_STD_TYPE) && !defined(_M2M_TYPE_H) )
184 typedef signed char INT8;
185 typedef signed short INT16;
186 typedef signed int INT32;
187 typedef signed long long INT64;
189 typedef unsigned char UINT8;
190 typedef unsigned short UINT16;
191 typedef unsigned int UINT32;
192 typedef unsigned long long UINT64;
194 #elif ( !defined(_M2M_TYPE_H) )
196 typedef int16_t INT16;
197 typedef int32_t INT32;
198 typedef int64_t INT64;
200 typedef uint8_t UINT8;
201 typedef uint16_t UINT16;
202 typedef uint32_t UINT32;
203 typedef uint64_t UINT64;
211 typedef UINT32 MEM_W;
212 typedef UINT8 BOOLEAN;
213 typedef INT32 iHANDLE;
214 typedef UINT32 uiHANDLE;
217 typedef UINT32 SIZE_T;
218 typedef INT32 SSIZE_T;
219 typedef UINT16 DEV_T;
220 typedef UINT16 MODE_T;
222 typedef UINT32 TIME_T;
223 typedef UINT32 INODE_T;
224 typedef UINT8 NLINK_T;
228 M2MB_RESULT_NOT_SUPPORTED = -3,
229 M2MB_RESULT_SM_UNAVAILABLE = -2,
230 M2MB_RESULT_INVALID_ARG = -1,
231 M2MB_RESULT_FAIL = 0,
232 M2MB_RESULT_SUCCESS = 1
240 typedef void *HANDLE;