add a missing section header table index conversion
[tangerine.git] / compiler / clib / include / stdint.h
blob49fd5e8227e716d4236da686b4cdeb0c33420710
1 #ifndef _STDINT_H_
2 #define _STDINT_H_
4 /*
5 Copyright © 1995-2002, The AROS Development Team. All rights reserved.
6 $Id$
8 Standard fixed sized integral types.
9 */
11 #include <aros/cpu.h>
13 #ifndef __AROS_INT64_T_DECLARED
14 #define __AROS_INT64_T_DECLARED
15 typedef signed AROS_64BIT_TYPE int64_t;
16 #endif
18 #ifndef __AROS_UINT64_T_DECLARED
19 #define __AROS_UINT64_T_DECLARED
20 typedef unsigned AROS_64BIT_TYPE uint64_t;
21 #endif
23 #ifndef __AROS_INT32_T_DECLARED
24 #define __AROS_INT32_T_DECLARED
25 typedef signed AROS_32BIT_TYPE int32_t;
26 #endif
28 #ifndef __AROS_UINT32_T_DECLARED
29 #define __AROS_UINT32_T_DECLARED
30 typedef unsigned AROS_32BIT_TYPE uint32_t;
31 #endif
33 #ifndef __AROS_INT16_T_DECLARED
34 #define __AROS_INT16_T_DECLARED
35 typedef signed AROS_16BIT_TYPE int16_t;
36 #endif
38 #ifndef __AROS_UINT16_T_DECLARED
39 #define __AROS_UINT16_T_DECLARED
40 typedef unsigned AROS_16BIT_TYPE uint16_t;
41 #endif
43 #ifndef __AROS_INT8_T_DECLARED
44 #define __AROS_INT8_T_DECLARED
45 typedef signed AROS_8BIT_TYPE int8_t;
46 #endif
48 #ifndef __AROS_UINT8_T_DECLARED
49 #define __AROS_UINT8_T_DECLARED
50 typedef unsigned AROS_8BIT_TYPE uint8_t;
51 #endif
53 #ifndef __AROS_INTPTR_T_DECLARED
54 #define __AROS_INTPTR_T_DECLARED
55 typedef signed AROS_INTPTR_TYPE intptr_t;
56 #endif
58 #ifndef __AROS_UINTPTR_T_DECLARED
59 #define __AROS_UINTPTR_T_DECLARED
60 typedef unsigned AROS_INTPTR_TYPE uintptr_t;
61 #endif
63 /* Fast versions of these types */
64 typedef signed AROS_64BIT_FASTTYPE int_fast64_t;
65 typedef unsigned AROS_64BIT_FASTTYPE uint_fast64_t;
66 typedef signed AROS_32BIT_FASTTYPE int_fast32_t;
67 typedef unsigned AROS_32BIT_FASTTYPE uint_fast32_t;
68 typedef signed AROS_16BIT_FASTTYPE int_fast16_t;
69 typedef unsigned AROS_16BIT_FASTTYPE uint_fast16_t;
70 typedef signed AROS_8BIT_FASTTYPE int_fast8_t;
71 typedef unsigned AROS_8BIT_FASTTYPE uint_fast8_t;
73 /* Minimum sized types */
74 typedef signed AROS_64BIT_LEASTTYPE int_least64_t;
75 typedef unsigned AROS_64BIT_LEASTTYPE uint_least64_t;
76 typedef signed AROS_32BIT_LEASTTYPE int_least32_t;
77 typedef unsigned AROS_32BIT_LEASTTYPE uint_least32_t;
78 typedef signed AROS_16BIT_LEASTTYPE int_least16_t;
79 typedef unsigned AROS_16BIT_LEASTTYPE uint_least16_t;
80 typedef signed AROS_8BIT_LEASTTYPE int_least8_t;
81 typedef unsigned AROS_8BIT_LEASTTYPE uint_least8_t;
85 Use the AROS_LARGEST_TYPE to describe the intmax_t and uintmax_t
87 #if defined AROS_LARGEST_TYPE
88 typedef signed AROS_LARGEST_TYPE intmax_t;
89 typedef unsigned AROS_LARGEST_TYPE uintmax_t;
90 #else
91 typedef LONG intmax_t;
92 typedef ULONG uintmax_t;
93 #endif
95 #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
97 #define SIG_ATOMIC_MIN AROS_SIG_ATOMIC_MIN
98 #define SIG_ATOMIC_MAX AROS_SIG_ATOMIC_MAX
100 #endif
104 TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO
106 #if defined __cplusplus && defined __STDC_LIMIT_MACROS
107 INT<N>_MAX, INT<N>_MIN, UINT<N>_MAX
108 INT_LEAST<N>_MIN, INT_LEAST<N>_MAX, UINT_LEAST<N>_MAX
109 INT_FAST<N>_MIN, INT_FAST<N>_MAX, UINT_FAST<N>_MAX
110 INTPTR_MIN, INTPTR_MAX, UINTPTR_MAX
112 INTMAX_MIN, INTMAX_MAX, UINTMAX_MAX
114 PTRDIFF_MIN, _MAX
115 SIG_ATOMIC_MIN, _MAX (must be <= -127 or >= 127, or unsig >= 255)
116 SIZE_MAX
117 WCHAR_MIN, _MAX (must be <= -127 or >= 127)
118 WINT_MIN, _MAX (must be <= -65535 or >= 65535)
119 #endif
121 #if defined __cplusplus && defined __STD_CONSTANT_MACROS
122 INT<N>_C(value) constant to int_least<N>_t
123 UINT<N>_C(vlaue) constant to uint_least<N>_t
125 eg UINT64_C(0x1234) => 0x1234ULL
127 INTMAX_C(), UINTMAX_C()
128 #endif
132 #endif /* _STDINT_H_ */