Message ID | 20230322120844.19657-2-jgross@suse.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | tools: use xen-tools/libs.h for common definitions | expand |
On 22.03.2023 13:08, Juergen Gross wrote: > --- a/tools/include/xen-tools/common-macros.h > +++ b/tools/include/xen-tools/common-macros.h > @@ -76,4 +76,8 @@ > #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) );}) Can the variant used here please be closer to ... > --- 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)); \ > -}) ... this rather than ... > --- 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) );}) ... this, both formatting-wise (excess blanks) and local-variable- naming-wise (trailing underscores instead of leading ones)? (If I was the one to commit this, I'd be happy to make the adjustment at that time.) Then Acked-by: Jan Beulich <jbeulich@suse.com> Jan
On 22.03.23 13:34, Jan Beulich wrote: > On 22.03.2023 13:08, Juergen Gross wrote: >> --- a/tools/include/xen-tools/common-macros.h >> +++ b/tools/include/xen-tools/common-macros.h >> @@ -76,4 +76,8 @@ >> #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) );}) > > Can the variant used here please be closer to ... > >> --- 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)); \ >> -}) > > ... this rather than ... > >> --- 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) );}) > > ... this, both formatting-wise (excess blanks) and local-variable- > naming-wise (trailing underscores instead of leading ones)? (If I was > the one to commit this, I'd be happy to make the adjustment at that > time.) Then Yes, absolutely fine with me. > Acked-by: Jan Beulich <jbeulich@suse.com> Thanks, Juergen
diff --git a/tools/include/xen-tools/common-macros.h b/tools/include/xen-tools/common-macros.h index a372b9ecf2..b046ab48bf 100644 --- a/tools/include/xen-tools/common-macros.h +++ b/tools/include/xen-tools/common-macros.h @@ -76,4 +76,8 @@ #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 f03e3a56d1..7169a2ea02 100644 --- a/tools/tests/vpci/emul.h +++ b/tools/tests/vpci/emul.h @@ -27,11 +27,7 @@ #include <stdio.h> #include <stdlib.h> -#define container_of(ptr, type, member) ({ \ - typeof(((type *)0)->member) *mptr = (ptr); \ - \ - (type *)((char *)mptr - offsetof(type, member)); \ -}) +#include <xen-tools/common-macros.h> #define smp_wmb() #define prefetch(x) __builtin_prefetch(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. *