summaryrefslogtreecommitdiff
path: root/include/linux/kernel.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-12-28 10:45:08 -0700
committerJagan Teki <jagan@amarulasolutions.com>2020-01-24 23:06:49 +0530
commit28de7505a73fcbf5561a3f39686f5f54d969fdfe (patch)
treeaefce3ac8a71b15c38f64815ab1792fd811051c0 /include/linux/kernel.h
parent29a4a9f1056fd4cc319c248c2e062cd91f6fa9f2 (diff)
common: Move check_member() to kernel.h
The kernel.h file has a number of useful macros including a few related to structures. Move check_member() there too. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include/linux/kernel.h')
-rw-r--r--include/linux/kernel.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 564819a1c0a..fefbc07375e 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -268,4 +268,15 @@
const typeof( ((type *)0)->member ) *__mptr = (ptr); \
(type *)( (char *)__mptr - offsetof(type,member) );})
+/*
+ * check_member() - Check the offset of a structure member
+ *
+ * @structure: Name of structure (e.g. global_data)
+ * @member: Name of member (e.g. baudrate)
+ * @offset: Expected offset in bytes
+ */
+#define check_member(structure, member, offset) _Static_assert( \
+ offsetof(struct structure, member) == (offset), \
+ "`struct " #structure "` offset for `" #member "` is not " #offset)
+
#endif