blob: 076af437284d59f9b2597e9d6f448804cf56fcb3 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef _LINUX_STDDEF_H
2#define _LINUX_STDDEF_H
3
David Howells607ca462012-10-13 10:46:48 +01004#include <uapi/linux/stddef.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07005
Richard Knutsson6e218282006-09-30 23:27:11 -07006
Lubos Lunak2084c242012-03-21 14:08:24 +01007#undef NULL
8#define NULL ((void *)0)
9
Richard Knutsson6e218282006-09-30 23:27:11 -070010enum {
11 false = 0,
12 true = 1
13};
14
Linus Torvalds1da177e2005-04-16 15:20:36 -070015#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
Linus Torvalds1da177e2005-04-16 15:20:36 -070021#endif
Denys Vlasenko38764882015-03-09 15:52:17 +010022
23/**
24 * offsetofend(TYPE, MEMBER)
25 *
26 * @TYPE: The type of the structure
27 * @MEMBER: The member within the structure to get the end offset of
28 */
29#define offsetofend(TYPE, MEMBER) \
30 (offsetof(TYPE, MEMBER) + sizeof(((TYPE *)0)->MEMBER))