[LTP] [PATCH v3 2/7] API: Add macro for the container_of trick

Cyril Hrubis chrubis@suse.cz
Tue Apr 27 13:03:21 CEST 2021


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.

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list