1 /*******************************************************************
2 uLan Communication - C interface library
4 ul_utdefs.h - common defines used in uLan utilities library
6 *******************************************************************/
16 #if defined(_WIN32)&&defined(_MSC_VER)&&!defined(inline)
17 #define inline _inline
21 /* offset of structure field */
22 #define UL_OFFSETOF(_type,_member) \
23 ((int)&(((_type*)0)->_member))
26 #ifndef UL_CONTAINEROF
28 #define UL_CONTAINEROF(_ptr, _type, _member) ({ \
29 const typeof( ((_type *)0)->_member ) *__mptr = (_ptr); \
30 (_type *)( (char *)__mptr - UL_OFFSETOF(_type,_member) );})
32 #define UL_CONTAINEROF(_ptr, _type, _member) \
33 ((_type *)( (char *)_ptr - UL_OFFSETOF(_type,_member)))
35 #endif /*UL_CONTAINEROF*/
43 #endif /* _UL_UTDEFS_H */