xref: /rk3399_ARM-atf/include/lib/libc/stdint.h (revision 4c700c1563aff7b51df95f17e952e050b9b4e37f)
127989a8eSAntonio Nino Diaz /*
227989a8eSAntonio Nino Diaz  * Copyright (c) 2012-2017 Roberto E. Vargas Caballero
327989a8eSAntonio Nino Diaz  *
427989a8eSAntonio Nino Diaz  * SPDX-License-Identifier: BSD-3-Clause
527989a8eSAntonio Nino Diaz  */
67c0ff9c4SAntonio Nino Diaz /*
7*4c700c15SGovindraj Raja  * Portions copyright (c) 2018-2019, Arm Limited and Contributors.
87c0ff9c4SAntonio Nino Diaz  * All rights reserved.
97c0ff9c4SAntonio Nino Diaz  */
1027989a8eSAntonio Nino Diaz 
112fb88cb2SAntonio Nino Diaz #ifndef STDINT_H
122fb88cb2SAntonio Nino Diaz #define STDINT_H
1327989a8eSAntonio Nino Diaz 
14b382ac68SBence Szépkúti #include <limits.h>
154ce3e99aSScott Branden #include <stdint_.h>
16b382ac68SBence Szépkúti 
17b382ac68SBence Szépkúti #define INT8_MAX  CHAR_MAX
18b382ac68SBence Szépkúti #define INT8_MIN  CHAR_MIN
19b382ac68SBence Szépkúti #define UINT8_MAX UCHAR_MAX
20b382ac68SBence Szépkúti 
21b382ac68SBence Szépkúti #define INT16_MAX  SHRT_MAX
22b382ac68SBence Szépkúti #define INT16_MIN  SHRT_MIN
23b382ac68SBence Szépkúti #define UINT16_MAX USHRT_MAX
24b382ac68SBence Szépkúti 
25b382ac68SBence Szépkúti #define INT32_MAX  INT_MAX
26b382ac68SBence Szépkúti #define INT32_MIN  INT_MIN
27b382ac68SBence Szépkúti #define UINT32_MAX UINT_MAX
28b382ac68SBence Szépkúti 
29b382ac68SBence Szépkúti #define INT_LEAST8_MIN  INT8_MIN
30b382ac68SBence Szépkúti #define INT_LEAST8_MAX  INT8_MAX
31b382ac68SBence Szépkúti #define UINT_LEAST8_MAX UINT8_MAX
32b382ac68SBence Szépkúti 
33b382ac68SBence Szépkúti #define INT_LEAST16_MIN  INT16_MIN
34b382ac68SBence Szépkúti #define INT_LEAST16_MAX  INT16_MAX
35b382ac68SBence Szépkúti #define UINT_LEAST16_MAX UINT16_MAX
36b382ac68SBence Szépkúti 
37b382ac68SBence Szépkúti #define INT_LEAST32_MIN  INT32_MIN
38b382ac68SBence Szépkúti #define INT_LEAST32_MAX  INT32_MAX
39b382ac68SBence Szépkúti #define UINT_LEAST32_MAX UINT32_MAX
40b382ac68SBence Szépkúti 
41b382ac68SBence Szépkúti #define INT_LEAST64_MIN  INT64_MIN
42b382ac68SBence Szépkúti #define INT_LEAST64_MAX  INT64_MAX
43b382ac68SBence Szépkúti #define UINT_LEAST64_MAX UINT64_MAX
44b382ac68SBence Szépkúti 
45b382ac68SBence Szépkúti #define INT_FAST8_MIN  INT32_MIN
46b382ac68SBence Szépkúti #define INT_FAST8_MAX  INT32_MAX
47b382ac68SBence Szépkúti #define UINT_FAST8_MAX UINT32_MAX
48b382ac68SBence Szépkúti 
49b382ac68SBence Szépkúti #define INT_FAST16_MIN  INT32_MIN
50b382ac68SBence Szépkúti #define INT_FAST16_MAX  INT32_MAX
51b382ac68SBence Szépkúti #define UINT_FAST16_MAX UINT32_MAX
52b382ac68SBence Szépkúti 
53b382ac68SBence Szépkúti #define INT_FAST32_MIN  INT32_MIN
54b382ac68SBence Szépkúti #define INT_FAST32_MAX  INT32_MAX
55b382ac68SBence Szépkúti #define UINT_FAST32_MAX UINT32_MAX
56b382ac68SBence Szépkúti 
57b382ac68SBence Szépkúti #define INT_FAST64_MIN  INT64_MIN
58b382ac68SBence Szépkúti #define INT_FAST64_MAX  INT64_MAX
59b382ac68SBence Szépkúti #define UINT_FAST64_MAX UINT64_MAX
60b382ac68SBence Szépkúti 
61b382ac68SBence Szépkúti #define INTPTR_MIN  LONG_MIN
62b382ac68SBence Szépkúti #define INTPTR_MAX  LONG_MAX
63b382ac68SBence Szépkúti #define UINTPTR_MAX ULONG_MAX
64b382ac68SBence Szépkúti 
65b382ac68SBence Szépkúti #define INTMAX_MIN  LLONG_MIN
66b382ac68SBence Szépkúti #define INTMAX_MAX  LLONG_MAX
67b382ac68SBence Szépkúti #define UINTMAX_MAX ULLONG_MAX
68b382ac68SBence Szépkúti 
69b382ac68SBence Szépkúti #define PTRDIFF_MIN LONG_MIN
70b382ac68SBence Szépkúti #define PTRDIFF_MAX LONG_MAX
71b382ac68SBence Szépkúti 
72ae4a90f2SBence Szépkúti #define SIZE_MAX ULONG_MAX
73b382ac68SBence Szépkúti 
74b382ac68SBence Szépkúti #define INT8_C(x)  x
75b382ac68SBence Szépkúti #define INT16_C(x) x
76b382ac68SBence Szépkúti #define INT32_C(x) x
77b382ac68SBence Szépkúti 
78b382ac68SBence Szépkúti #define UINT8_C(x)  x
79b382ac68SBence Szépkúti #define UINT16_C(x) x
80b382ac68SBence Szépkúti #define UINT32_C(x) x ## U
81b382ac68SBence Szépkúti 
82b382ac68SBence Szépkúti #define INTMAX_C(x)  x ## LL
83b382ac68SBence Szépkúti #define UINTMAX_C(x) x ## ULL
84b382ac68SBence Szépkúti 
85b382ac68SBence Szépkúti typedef signed char int8_t;
86b382ac68SBence Szépkúti typedef short int16_t;
87b382ac68SBence Szépkúti typedef int int32_t;
88b382ac68SBence Szépkúti 
89b382ac68SBence Szépkúti typedef unsigned char uint8_t;
90b382ac68SBence Szépkúti typedef unsigned short uint16_t;
91b382ac68SBence Szépkúti typedef unsigned int uint32_t;
92b382ac68SBence Szépkúti 
93b382ac68SBence Szépkúti typedef signed char int8_least_t;
94b382ac68SBence Szépkúti typedef short int16_least_t;
95b382ac68SBence Szépkúti typedef int int32_least_t;
96b382ac68SBence Szépkúti 
97b382ac68SBence Szépkúti typedef unsigned char uint8_least_t;
98b382ac68SBence Szépkúti typedef unsigned short uint16_least_t;
99b382ac68SBence Szépkúti typedef unsigned int uint32_least_t;
100b382ac68SBence Szépkúti 
101b382ac68SBence Szépkúti typedef int int8_fast_t;
102b382ac68SBence Szépkúti typedef int int16_fast_t;
103b382ac68SBence Szépkúti typedef int int32_fast_t;
104b382ac68SBence Szépkúti 
105b382ac68SBence Szépkúti typedef unsigned int uint8_fast_t;
106b382ac68SBence Szépkúti typedef unsigned int uint16_fast_t;
107b382ac68SBence Szépkúti typedef unsigned int uint32_fast_t;
108b382ac68SBence Szépkúti 
109b382ac68SBence Szépkúti typedef long intptr_t;
110b382ac68SBence Szépkúti typedef unsigned long uintptr_t;
111b382ac68SBence Szépkúti 
112b382ac68SBence Szépkúti /*
113b382ac68SBence Szépkúti * Conceptually, these are supposed to be the largest integers representable in C,
114b382ac68SBence Szépkúti * but GCC and Clang define them as long long for compatibility.
115b382ac68SBence Szépkúti */
116b382ac68SBence Szépkúti typedef long long intmax_t;
117b382ac68SBence Szépkúti typedef unsigned long long uintmax_t;
118b382ac68SBence Szépkúti 
119b382ac68SBence Szépkúti typedef long register_t;
120b382ac68SBence Szépkúti typedef unsigned long u_register_t;
121b382ac68SBence Szépkúti 
1222fb88cb2SAntonio Nino Diaz #endif /* STDINT_H */
123