diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/uvh.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -10,10 +10,13 @@ #ifndef container_of #ifdef __GNUC__ -#define container_of(ptr, type, member) ({ \ - const typeof( ((type *)0)->member ) *__mptr = (ptr); \ - (type *)( (char *)__mptr - offsetof(type,member) );}) +#define member_type(type, member) __typeof__ (((type *)0)->member) +#else +#define member_type(type, member) const void #endif + +#define container_of(ptr, type, member) ((type *)( \ + (char *)(member_type(type, member) *){ ptr } - offsetof(type, member))) #endif #define LOG(LEVEL, FMT, args...) \ |
