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