Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[linux-2.6-microblaze.git] / include / linux / stddef.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_STDDEF_H
3 #define _LINUX_STDDEF_H
4
5 #include <uapi/linux/stddef.h>
6
7 #undef NULL
8 #define NULL ((void *)0)
9
10 enum {
11         false   = 0,
12         true    = 1
13 };
14
15 #undef offsetof
16 #ifdef __compiler_offsetof
17 #define offsetof(TYPE, MEMBER)  __compiler_offsetof(TYPE, MEMBER)
18 #else
19 #define offsetof(TYPE, MEMBER)  ((size_t)&((TYPE *)0)->MEMBER)
20 #endif
21
22 /**
23  * offsetofend(TYPE, MEMBER)
24  *
25  * @TYPE: The type of the structure
26  * @MEMBER: The member within the structure to get the end offset of
27  */
28 #define offsetofend(TYPE, MEMBER) \
29         (offsetof(TYPE, MEMBER) + sizeof(((TYPE *)0)->MEMBER))
30
31 #endif