Message ID | 20210412145506.26894-3-rpalethorpe@suse.com |
---|---|
State | Changes Requested |
Headers | show |
Series | CGroup API rewrite | expand |
Richard Palethorpe <rpalethorpe@suse.com> wrote: Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com> > Reviewed-by: Li Wang <liwang@redhat.com> > --- > include/tst_common.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/tst_common.h b/include/tst_common.h > index fd7a900d4..317925d1d 100644 > --- a/include/tst_common.h > +++ b/include/tst_common.h > @@ -83,4 +83,9 @@ > #define TST_RES_SUPPORTS_TCONF_TFAIL_TINFO_TPASS_TWARN(condition) \ > TST_BUILD_BUG_ON(condition) > > +#define tst_container_of(ptr, type, member) ({ \ > + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ > + (type *)( (char *)__mptr - offsetof(type,member) ); \ > +}) > I'd suggest defining it as uppercase 'TST_CONTAINER_OF(...)' to respect other macro's naming policy in tst_common.h.
Hi, Li Wang <liwang@redhat.com> writes: > Richard Palethorpe <rpalethorpe@suse.com> wrote: > > Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com> >> > Reviewed-by: Li Wang <liwang@redhat.com> > > >> --- >> include/tst_common.h | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/include/tst_common.h b/include/tst_common.h >> index fd7a900d4..317925d1d 100644 >> --- a/include/tst_common.h >> +++ b/include/tst_common.h >> @@ -83,4 +83,9 @@ >> #define TST_RES_SUPPORTS_TCONF_TFAIL_TINFO_TPASS_TWARN(condition) \ >> TST_BUILD_BUG_ON(condition) >> >> +#define tst_container_of(ptr, type, member) ({ \ >> + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ >> + (type *)( (char *)__mptr - offsetof(type,member) ); \ >> +}) >> > > I'd suggest defining it as uppercase 'TST_CONTAINER_OF(...)' to respect > other macro's naming policy in tst_common.h. I don't mind either way. I suspect it is lower case to match offsetof and maybe it is expected to become a compiler intrinsic. Perhaps we should remove the tst_. WDYT Cyril??
Hi! > >> --- > >> include/tst_common.h | 5 +++++ > >> 1 file changed, 5 insertions(+) > >> > >> diff --git a/include/tst_common.h b/include/tst_common.h > >> index fd7a900d4..317925d1d 100644 > >> --- a/include/tst_common.h > >> +++ b/include/tst_common.h > >> @@ -83,4 +83,9 @@ > >> #define TST_RES_SUPPORTS_TCONF_TFAIL_TINFO_TPASS_TWARN(condition) \ > >> TST_BUILD_BUG_ON(condition) > >> > >> +#define tst_container_of(ptr, type, member) ({ \ > >> + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ > >> + (type *)( (char *)__mptr - offsetof(type,member) ); \ > >> +}) > >> > > > > I'd suggest defining it as uppercase 'TST_CONTAINER_OF(...)' to respect > > other macro's naming policy in tst_common.h. > > I don't mind either way. I suspect it is lower case to match offsetof > and maybe it is expected to become a compiler intrinsic. Perhaps we > should remove the tst_. WDYT Cyril?? I think that it makes sense to use the same name as in the Linux kernel since the macro is well known there. I would go just with container_of() in this case.
diff --git a/include/tst_common.h b/include/tst_common.h index fd7a900d4..317925d1d 100644 --- a/include/tst_common.h +++ b/include/tst_common.h @@ -83,4 +83,9 @@ #define TST_RES_SUPPORTS_TCONF_TFAIL_TINFO_TPASS_TWARN(condition) \ TST_BUILD_BUG_ON(condition) +#define tst_container_of(ptr, type, member) ({ \ + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) ); \ +}) + #endif /* TST_COMMON_H__ */
Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com> --- include/tst_common.h | 5 +++++ 1 file changed, 5 insertions(+)