blob: b58f645a3bf5397695b6c996e930d4ad3070724a [file] [log] [blame]
Stefan Reinauerda1ef022012-12-07 17:24:06 -08001#ifndef STDDEF_H
2#define STDDEF_H
Eric Biederman8ca8d762003-04-22 19:02:15 +00003
Aaron Durbindc9f5cd2015-09-08 13:34:43 -05004#include <commonlib/helpers.h>
5
Eric Biederman8ca8d762003-04-22 19:02:15 +00006typedef long ptrdiff_t;
Stefan Reinauer0e740d32012-05-14 13:21:08 -07007#ifndef __SIZE_TYPE__
8#define __SIZE_TYPE__ unsigned long
9#endif
10typedef __SIZE_TYPE__ size_t;
Stefan Reinauerf8b36502013-05-02 14:02:28 -070011/* There is a GCC macro for a size_t type, but not
12 * for a ssize_t type. Below construct tricks GCC
13 * into making __SIZE_TYPE__ signed.
14 */
15#define unsigned signed
16typedef __SIZE_TYPE__ ssize_t;
17#undef unsigned
Eric Biederman8ca8d762003-04-22 19:02:15 +000018
19typedef int wchar_t;
20typedef unsigned int wint_t;
21
Eric Biedermanb78c1972004-10-14 20:54:17 +000022#define NULL ((void *)0)
Eric Biederman8ca8d762003-04-22 19:02:15 +000023
Stefan Reinauer57879c92012-07-31 16:47:25 -070024#ifdef __PRE_RAM__
25#define ROMSTAGE_CONST const
26#else
27#define ROMSTAGE_CONST
28#endif
29
Julius Wernerdbe0df12014-06-06 16:10:56 -070030/* Work around non-writable data segment in execute-in-place romstage on x86. */
31#if defined(__PRE_RAM__) && CONFIG_ARCH_X86
32#define MAYBE_STATIC
33#else
34#define MAYBE_STATIC static
35#endif
36
Stefan Reinauerda1ef022012-12-07 17:24:06 -080037#endif /* STDDEF_H */