summaryrefslogtreecommitdiff
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
parentblock-raw is not a protocol (diff)
downloadqemu-kvm-ac509d88877c07bb06497206d74a2baa25b6d895.tar.gz
qemu-kvm-ac509d88877c07bb06497206d74a2baa25b6d895.tar.bz2
qemu-kvm-ac509d88877c07bb06497206d74a2baa25b6d895.zip
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 09ebace5b..9e8547cea 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))