diff mbox series

[3/8] backports: stddef.h: Add sizeof_field()

Message ID 20200320233950.32257-4-hauke@hauke-m.de (mailing list archive)
State New, archived
Headers show
Series backports: Update to version 5.5.10 | expand

Commit Message

Hauke Mehrtens March 20, 2020, 11:39 p.m. UTC
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>
---
 backport/backport-include/linux/stddef.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
diff mbox series

Patch

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 */