diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2010-02-17 04:22:22 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@kernel.crashing.org> | 2010-02-17 04:22:22 +0100 |
commit | 9aed2a09fee8e6f50a6657b3da85dc2793882037 (patch) | |
tree | b25259c981a7d723f05a256f7b3ddc0d8385f23f | |
parent | ae73b78f4917389d8db525ce5f7d48f232c5d048 (diff) |
Use offsetof(), not __builtin_offsetof() or funky macros
-rw-r--r-- | types.h | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -5,6 +5,9 @@ #ifndef _TYPES_H #define _TYPES_H +#include <stddef.h> + + typedef unsigned char u8; typedef unsigned short u16; typedef unsigned int u32; @@ -13,14 +16,11 @@ typedef unsigned long long u64; typedef signed short s16; typedef signed int s32; + #define ARRAY_SIZE(x) (sizeof x / sizeof x[0]) -#if 0 -#define subtype(_type, _base, _field) \ - (void *)((u8 *)(_base) - __builtin_offsetof(_type, _field)) -#else + #define subtype(_type, _base, _field) \ - (void *)((u8 *)(_base) - ((u8 *)&(((_type *)0)->_field) - 0)) -#endif + (void *)((u8 *)(_base) - offsetof(_type, _field)) #endif |