|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v5 2/5] tools: add container_of() macro to xen-tools/common-macros.h
Instead of having 4 identical copies of the definition of a
container_of() macro in different tools header files, add that macro
to xen-tools/common-macros.h and use that instead.
Delete the other copies of that macro.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
---
V5:
- change patch sequence
- use offsetof() definition from tools/tests/x86_emulator/x86-emulate.h
as template (Jan Beulich)
---
tools/include/xen-tools/common-macros.h | 5 +++++
tools/tests/vpci/emul.h | 6 ------
tools/tests/x86_emulator/x86-emulate.h | 5 -----
tools/xenstore/list.h | 6 ++----
4 files changed, 7 insertions(+), 15 deletions(-)
diff --git a/tools/include/xen-tools/common-macros.h
b/tools/include/xen-tools/common-macros.h
index a372b9ecf2..76b55bf620 100644
--- a/tools/include/xen-tools/common-macros.h
+++ b/tools/include/xen-tools/common-macros.h
@@ -76,4 +76,9 @@
#define __must_check __attribute__((__warn_unused_result__))
#endif
+#define container_of(ptr, type, member) ({ \
+ typeof(((type *)0)->member) *mptr__ = (ptr); \
+ (type *)((char *)mptr__ - offsetof(type, member)); \
+})
+
#endif /* __XEN_TOOLS_COMMON_MACROS__ */
diff --git a/tools/tests/vpci/emul.h b/tools/tests/vpci/emul.h
index d26e00b9d7..8c5bcadd5f 100644
--- a/tools/tests/vpci/emul.h
+++ b/tools/tests/vpci/emul.h
@@ -29,12 +29,6 @@
#include <xen-tools/common-macros.h>
-#define container_of(ptr, type, member) ({ \
- typeof(((type *)0)->member) *mptr = (ptr); \
- \
- (type *)((char *)mptr - offsetof(type, member)); \
-})
-
#define smp_wmb()
#define prefetch(x) __builtin_prefetch(x)
#define ASSERT(x) assert(x)
diff --git a/tools/tests/x86_emulator/x86-emulate.h
b/tools/tests/x86_emulator/x86-emulate.h
index 46d4e43cea..1af986f78d 100644
--- a/tools/tests/x86_emulator/x86-emulate.h
+++ b/tools/tests/x86_emulator/x86-emulate.h
@@ -56,11 +56,6 @@
#define cf_check /* No Control Flow Integriy checking */
-#define container_of(ptr, type, member) ({ \
- typeof(((type *)0)->member) *mptr__ = (ptr); \
- (type *)((char *)mptr__ - offsetof(type, member)); \
-})
-
#define AC_(n,t) (n##t)
#define _AC(n,t) AC_(n,t)
diff --git a/tools/xenstore/list.h b/tools/xenstore/list.h
index b17d13e0ec..a464a38b61 100644
--- a/tools/xenstore/list.h
+++ b/tools/xenstore/list.h
@@ -3,6 +3,8 @@
/* Taken from Linux kernel code, but de-kernelized for userspace. */
#include <stddef.h>
+#include <xen-tools/common-macros.h>
+
#undef LIST_HEAD_INIT
#undef LIST_HEAD
#undef INIT_LIST_HEAD
@@ -15,10 +17,6 @@
#define LIST_POISON1 ((void *) 0x00100100)
#define LIST_POISON2 ((void *) 0x00200200)
-#define container_of(ptr, type, member) ({ \
- typeof( ((type *)0)->member ) *__mptr = (ptr); \
- (type *)( (char *)__mptr - offsetof(type,member) );})
-
/*
* Simple doubly linked list implementation.
*
--
2.35.3
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |