tools: add sizeof_field and endof_field macros

* `sizeof_field` returns the size of a specific struct member
* `endof_field` returns the offset to the end of the member within the struct

It will be useful in upcoming layout checks of SMBIOS structs.

Signed-off-by: Petr Beneš <w1benny@gmail.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
This commit is contained in:
Petr Beneš authored and Jan Beulich committed 2025-08-27 11:26:33 +02:00
1 parent 757abedabb
commit 17e66ca918
1 file changed
+5
+5
View File
@@ -83,6 +83,11 @@
#define __packed __attribute__((__packed__))
#endif
#define sizeof_field(type, member) sizeof(((type *)NULL)->member)
#define endof_field(type, member) \
(offsetof(type, member) + sizeof_field(type, member))
#define container_of(ptr, type, member) ({ \
typeof(((type *)0)->member) *mptr__ = (ptr); \
(type *)((char *)mptr__ - offsetof(type, member)); \
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.