diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2010-01-31 19:09:53 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@kernel.crashing.org> | 2010-01-31 19:09:53 +0100 |
commit | ea9b8864725c2a300b83cd9d2fde33765945d18c (patch) | |
tree | 684266c909c8ba5122f7ff01302a57a09e16092d | |
parent | 9563073288d393f0fd4345a0103f2e9ea2bc9c6d (diff) |
Add an ugly pointer-fiddling subtype() definition for ancient compilers
-rw-r--r-- | types.h | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -13,7 +13,12 @@ typedef unsigned long long u64; typedef signed short s16; typedef signed int s32; +#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 #endif |