Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1da177e4 LT |
2 | #ifndef _LINUX_STDDEF_H |
3 | #define _LINUX_STDDEF_H | |
4 | ||
607ca46e | 5 | #include <uapi/linux/stddef.h> |
1da177e4 LT |
6 | |
7 | #undef NULL | |
1da177e4 | 8 | #define NULL ((void *)0) |
6e218287 RK |
9 | |
10 | enum { | |
11 | false = 0, | |
12 | true = 1 | |
13 | }; | |
14 | ||
1da177e4 LT |
15 | #undef offsetof |
16 | #ifdef __compiler_offsetof | |
8c7fbe57 | 17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) |
1da177e4 | 18 | #else |
8c7fbe57 | 19 | #define offsetof(TYPE, MEMBER) ((size_t)&((TYPE *)0)->MEMBER) |
1da177e4 | 20 | #endif |
38764884 | 21 | |
4229a470 KC |
22 | /** |
23 | * sizeof_field(TYPE, MEMBER) | |
24 | * | |
25 | * @TYPE: The structure containing the field of interest | |
26 | * @MEMBER: The field to return the size of | |
27 | */ | |
28 | #define sizeof_field(TYPE, MEMBER) sizeof((((TYPE *)0)->MEMBER)) | |
29 | ||
38764884 DV |
30 | /** |
31 | * offsetofend(TYPE, MEMBER) | |
32 | * | |
33 | * @TYPE: The type of the structure | |
34 | * @MEMBER: The member within the structure to get the end offset of | |
35 | */ | |
36 | #define offsetofend(TYPE, MEMBER) \ | |
4229a470 | 37 | (offsetof(TYPE, MEMBER) + sizeof_field(TYPE, MEMBER)) |
8c7fbe57 JP |
38 | |
39 | #endif |