xref: /kvmtool/include/linux/stddef.h (revision d8343698df72d03986efc4b985b2ee18df514200)
1 #ifndef _LINUX_STDDEF_H
2 #define _LINUX_STDDEF_H
3 
4 #undef NULL
5 #define NULL ((void *)0)
6 
7 #undef offsetof
8 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
9 
10 /**
11  * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union
12  *
13  * @TYPE: The type of each flexible array element
14  * @NAME: The name of the flexible array member
15  *
16  * In order to have a flexible array member in a union or alone in a
17  * struct, it needs to be wrapped in an anonymous struct with at least 1
18  * named member, but that member can be empty.
19  */
20 #define __DECLARE_FLEX_ARRAY(TYPE, NAME)	\
21 	struct { \
22 		struct { } __empty_ ## NAME; \
23 		TYPE NAME[]; \
24 	}
25 
26 #endif
27