summaryrefslogtreecommitdiff
path: root/osdep.h
diff options
context:
space:
mode:
authorbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-16 13:36:57 +0000
committerbalrog <balrog@c046a42c-6fe2-441c-8c8c-71466251a162>2008-09-16 13:36:57 +0000
commitac509d88877c07bb06497206d74a2baa25b6d895 (patch)
tree1146602c5a370fd479b139f72746e598c7a7178a /osdep.h
parent2acf5af04daf02723a4ba1b720a53b6e718023f4 (diff)
Move offsetof to osdep.h, remove local defintions.
With this container_of can actually be used without causing build errors. Reformat container_of. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5234 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'osdep.h')
-rw-r--r--osdep.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/osdep.h b/osdep.h
index 09ebace5b3..9e8547cea4 100644
--- a/osdep.h
+++ b/osdep.h
@@ -23,9 +23,14 @@
#define unlikely(x) __builtin_expect(!!(x), 0)
#endif
+#ifndef offsetof
+#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
+#endif
+#ifndef container_of
#define container_of(ptr, type, member) ({ \
- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
- (type *)( (char *)__mptr - offsetof(type,member) );})
+ const typeof(((type *) 0)->member) *__mptr = (ptr); \
+ (type *) ((char *) __mptr - offsetof(type, member));})
+#endif
#ifndef MIN
#define MIN(a, b) (((a) < (b)) ? (a) : (b))