Merge tag 'devicetree-fixes-for-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-block.git] / include / linux / stddef.h
CommitLineData
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
10enum {
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