diff options
Diffstat (limited to 'lib/ext2fs/compiler.h')
-rw-r--r-- | lib/ext2fs/compiler.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/ext2fs/compiler.h b/lib/ext2fs/compiler.h new file mode 100644 index 0000000..3bb3521 --- /dev/null +++ b/lib/ext2fs/compiler.h @@ -0,0 +1,26 @@ +#ifndef _EXT2FS_COMPILER_H +#define _EXT2FS_COMPILER_H + +#include <stddef.h> + +#ifdef __GNUC__ + +#ifndef __GNUC_PREREQ +#if defined(__GNUC__) && defined(__GNUC_MINOR__) +#define __GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +#define __GNUC_PREREQ(maj, min) 0 +#endif +#endif + +#define container_of(ptr, type, member) ({ \ + __typeof__( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) );}) +#else +#define container_of(ptr, type, member) \ + ((type *)((char *)(ptr) - offsetof(type, member))) +#endif + + +#endif /* _EXT2FS_COMPILER_H */ |