summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2010-01-31 19:09:53 +0100
committerSegher Boessenkool <segher@kernel.crashing.org>2010-01-31 19:09:53 +0100
commitea9b8864725c2a300b83cd9d2fde33765945d18c (patch)
tree684266c909c8ba5122f7ff01302a57a09e16092d
parent9563073288d393f0fd4345a0103f2e9ea2bc9c6d (diff)
Add an ugly pointer-fiddling subtype() definition for ancient compilers
-rw-r--r--types.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/types.h b/types.h
index 232a7ce..3002c6e 100644
--- a/types.h
+++ b/types.h
@@ -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