summaryrefslogtreecommitdiff
path: root/include/compiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/compiler.h')
-rw-r--r--include/compiler.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/compiler.h b/include/compiler.h
index 4ce60ccc..7beeb8fe 100644
--- a/include/compiler.h
+++ b/include/compiler.h
@@ -180,6 +180,13 @@ typedef enum bool { false, true } bool;
# define offsetof(t,m) ((size_t)&(((t *)0)->m))
#endif
+/* This is like offsetof(), but takes an object rather than a type.
+ Ironically enough this is actually guaranteed to be portable,
+ as far as I know... */
+#ifndef offsetin
+# define offsetin(p,m) ((const char *)&((p).m) - (const char *)&(p))
+#endif
+
/* The container_of construct: if p is a pointer to member m of
container class c, then return a pointer to the container of which
*p is a member. */