summaryrefslogtreecommitdiff
path: root/include/linux/kernel.h
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-12-28 10:45:08 -0700
committerTom Rini <trini@konsulko.com>2020-01-17 17:53:52 -0500
commit825faebbdfc9bcd3e6e6ac3d8f7b321deb43a94e (patch)
tree20bc20f02d4b8949a4b551d07c9161e1d3047fe5 /include/linux/kernel.h
parentdb41d65a97f335167e1fbc0400a83333b5157703 (diff)
downloadu-boot-825faebbdfc9bcd3e6e6ac3d8f7b321deb43a94e.tar.gz
u-boot-825faebbdfc9bcd3e6e6ac3d8f7b321deb43a94e.tar.bz2
u-boot-825faebbdfc9bcd3e6e6ac3d8f7b321deb43a94e.zip
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 564819a1c0..fefbc07375 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