diff options
author | Stefan Reinauer <reinauer@chromium.org> | 2015-01-05 11:09:11 -0800 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2015-01-14 21:23:29 +0100 |
commit | 4417deb76fffa9b30746000983e148643ba3d17c (patch) | |
tree | ebf7dd0be05598827510f88ae2a0ef05da461298 /src/include/stddef.h | |
parent | 41759274fe9388137ce16f5199c42e14ddd48f13 (diff) | |
download | coreboot-4417deb76fffa9b30746000983e148643ba3d17c.tar.xz |
Move container_of() macro to stddef.h
It's not a SPI related macro, hence move it to stddef.h where
other similar macros live.
Change-Id: I1008894af7a272f1bc36d3ae6cee3881132b6ba9
Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-on: http://review.coreboot.org/8109
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Diffstat (limited to 'src/include/stddef.h')
-rw-r--r-- | src/include/stddef.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/include/stddef.h b/src/include/stddef.h index 137de04405..3a030e14a1 100644 --- a/src/include/stddef.h +++ b/src/include/stddef.h @@ -32,6 +32,17 @@ typedef unsigned int wint_t; offsetof(struct structure, member) == offset, \ "`struct " #structure "` offset for `" #member "` is not " #offset ) +/** + * container_of - cast a member of a structure out to the containing structure + * @param ptr: the pointer to the member. + * @param type: the type of the container struct this is embedded in. + * @param member: the name of the member within the struct. + * + */ +#define container_of(ptr, type, member) ({ \ + const typeof( ((type *)0)->member ) *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) );}) + #ifdef __PRE_RAM__ #define ROMSTAGE_CONST const #else |