diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2020-03-12 10:43:50 +0100 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2020-03-19 19:40:43 +0100 |
commit | a414d732075d48922e6d4a8358713b85a8d0ce7f (patch) | |
tree | 7be4b1ac8ffce8cfd01aa20754abe923fb3189e8 | |
parent | 8f916962c848212394773b30d514f10f3b276c15 (diff) | |
download | backports-a414d732075d48922e6d4a8358713b85a8d0ce7f.tar.gz |
backports: stddef.h: Add sizeof_field()
This backports sizeof_field() from upstream Linux commit 4229a470175b
("stddef.h: Introduce sizeof_field()"). This is now used by multiple
drivers.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r-- | backport/backport-include/linux/stddef.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/backport/backport-include/linux/stddef.h b/backport/backport-include/linux/stddef.h index 2c836b00..a6cdc67d 100644 --- a/backport/backport-include/linux/stddef.h +++ b/backport/backport-include/linux/stddef.h @@ -2,6 +2,16 @@ #define __BACKPORT_LINUX_STDDEF_H #include_next <linux/stddef.h> +#ifndef sizeof_field +/** + * sizeof_field(TYPE, MEMBER) + * + * @TYPE: The structure containing the field of interest + * @MEMBER: The field to return the size of + */ +#define sizeof_field(TYPE, MEMBER) sizeof((((TYPE *)0)->MEMBER)) +#endif + #ifndef offsetofend /** * offsetofend(TYPE, MEMBER) @@ -10,7 +20,7 @@ * @MEMBER: The member within the structure to get the end offset of */ #define offsetofend(TYPE, MEMBER) \ - (offsetof(TYPE, MEMBER) + sizeof(((TYPE *)0)->MEMBER)) + (offsetof(TYPE, MEMBER) + sizeof_field(TYPE, MEMBER)) #endif #endif /* __BACKPORT_LINUX_STDDEF_H */ |