aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2020-03-12 10:43:50 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2020-03-19 19:40:43 +0100
commita414d732075d48922e6d4a8358713b85a8d0ce7f (patch)
tree7be4b1ac8ffce8cfd01aa20754abe923fb3189e8
parent8f916962c848212394773b30d514f10f3b276c15 (diff)
downloadbackports-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.h12
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 */