1 | #ifndef _STDDEF_H
|
---|
2 | #define _STDDEF_H
|
---|
3 |
|
---|
4 | typedef __SIZE_TYPE__ size_t;
|
---|
5 | typedef __PTRDIFF_TYPE__ ssize_t;
|
---|
6 | typedef __WCHAR_TYPE__ wchar_t;
|
---|
7 | typedef __PTRDIFF_TYPE__ ptrdiff_t;
|
---|
8 | typedef __PTRDIFF_TYPE__ intptr_t;
|
---|
9 | typedef __SIZE_TYPE__ uintptr_t;
|
---|
10 |
|
---|
11 | #ifndef __int8_t_defined
|
---|
12 | #define __int8_t_defined
|
---|
13 | typedef signed char int8_t;
|
---|
14 | typedef signed short int int16_t;
|
---|
15 | typedef signed int int32_t;
|
---|
16 | #ifdef __LP64__
|
---|
17 | typedef signed long int int64_t;
|
---|
18 | #else
|
---|
19 | typedef signed long long int int64_t;
|
---|
20 | #endif
|
---|
21 | typedef unsigned char uint8_t;
|
---|
22 | typedef unsigned short int uint16_t;
|
---|
23 | typedef unsigned int uint32_t;
|
---|
24 | #ifdef __LP64__
|
---|
25 | typedef unsigned long int uint64_t;
|
---|
26 | #else
|
---|
27 | typedef unsigned long long int uint64_t;
|
---|
28 | #endif
|
---|
29 | #endif
|
---|
30 |
|
---|
31 | #ifndef NULL
|
---|
32 | #define NULL ((void*)0)
|
---|
33 | #endif
|
---|
34 |
|
---|
35 | #define offsetof(type, field) ((size_t)&((type *)0)->field)
|
---|
36 |
|
---|
37 | void *alloca(size_t size);
|
---|
38 |
|
---|
39 | #endif
|
---|
40 |
|
---|
41 | /* Older glibc require a wint_t from <stddef.h> (when requested
|
---|
42 | by __need_wint_t, as otherwise stddef.h isn't allowed to
|
---|
43 | define this type). Note that this must be outside the normal
|
---|
44 | _STDDEF_H guard, so that it works even when we've included the file
|
---|
45 | already (without requiring wint_t). Some other libs define _WINT_T
|
---|
46 | if they've already provided that type, so we can use that as guard.
|
---|
47 | TCC defines __WINT_TYPE__ for us. */
|
---|
48 | #if defined (__need_wint_t)
|
---|
49 | #ifndef _WINT_T
|
---|
50 | #define _WINT_T
|
---|
51 | typedef __WINT_TYPE__ wint_t;
|
---|
52 | #endif
|
---|
53 | #undef __need_wint_t
|
---|
54 | #endif
|
---|