Add a way of checking the position of a structure member
U-Boot uses structures for hardware access so it is important that these structures are correct. Add a way of asserting that a structure member is at a particular offset. This can be created using the datasheet for the hardware. This implementation uses Static_assert() since BUILD_BUG_ON() only works within functions. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
4eae498e68
commit
c9689ca318
|
@ -1010,6 +1010,17 @@ int cpu_release(int nr, int argc, char * const argv[]);
|
|||
#define DEFINE_CACHE_ALIGN_BUFFER(type, name, size) \
|
||||
DEFINE_ALIGN_BUFFER(type, name, size, ARCH_DMA_MINALIGN)
|
||||
|
||||
/*
|
||||
* 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)
|
||||
|
||||
/* Pull in stuff for the build system */
|
||||
#ifdef DO_DEPS_ONLY
|
||||
# include <environment.h>
|
||||
|
|
Loading…
Reference in New Issue