Whamcloud - gitweb
baed2a621dfd5ec05593b2d3dbd106864cb8a28e
[tools/e2fsprogs.git] / lib / ext2fs / compiler.h
1 #ifndef _EXT2FS_COMPILER_H
2 #define _EXT2FS_COMPILER_H
3
4 #include <stddef.h>
5
6 #ifdef __GNUC__
7
8 #define container_of(ptr, type, member) ({                              \
9         __typeof__( ((type *)0)->member ) *__mptr = (ptr);      \
10         (type *)( (char *)__mptr - offsetof(type,member) );})
11 #else
12 #define container_of(ptr, type, member)                         \
13         ((type *)((char *)(ptr) - offsetof(type, member)))
14 #endif
15
16
17 #endif /* _EXT2FS_COMPILER_H */