1 /* SPDX-License-Identifier: GPL-2.0+ */
2 
3 #ifndef _LIMITS_H
4 #define _LIMITS_H
5 
6 #define SCHAR_MAX   __SCHAR_MAX__
7 #define SCHAR_MIN   (-SCHAR_MAX - 1)
8 #define UCHAR_MAX   (SCHAR_MAX * 2 + 1)
9 
10 #ifdef __CHAR_UNSIGNED__
11 #define CHAR_MAX    UCHAR_MAX
12 #define CHAR_MIN    0
13 #else
14 #define CHAR_MAX    SCHAR_MAX
15 #define CHAR_MIN    SCHAR_MIN
16 #endif
17 
18 #define SHRT_MAX    __SHRT_MAX__
19 #define SHRT_MIN    (-SHRT_MAX - 1)
20 #define USHRT_MAX   (SHRT_MAX * 2 + 1)
21 
22 #define INT_MAX     __INT_MAX__
23 #define INT_MIN     (-INT_MAX - 1)
24 #define UINT_MAX    (INT_MAX * 2U + 1U)
25 
26 #define LONG_MAX    __LONG_MAX__
27 #define LONG_MIN    (-LONG_MAX - 1L)
28 #define ULONG_MAX   (LONG_MAX * 2UL + 1UL)
29 
30 #define LLONG_MAX   __LONG_LONG_MAX__
31 #define LLONG_MIN   (-LLONG_MAX - 1LL)
32 #define ULLONG_MAX  (LLONG_MAX * 2ULL + 1ULL)
33 
34 #define U8_MAX      UCHAR_MAX
35 #define S8_MAX      SCHAR_MAX
36 #define S8_MIN      SCHAR_MIN
37 #define U16_MAX     USHRT_MAX
38 #define S16_MAX     SHRT_MAX
39 #define S16_MIN     SHRT_MIN
40 #define U32_MAX     UINT_MAX
41 #define S32_MAX     INT_MAX
42 #define S32_MIN     INT_MIN
43 #define U64_MAX     ULLONG_MAX
44 #define S64_MAX     LLONG_MAX
45 #define S64_MIN     LLONG_MIN
46 
47 #define UINT8_MAX   U8_MAX
48 #define INT8_MAX    S8_MAX
49 #define INT8_MIN    S8_MIN
50 #define UINT16_MAX  U16_MAX
51 #define INT16_MAX   S16_MAX
52 #define INT16_MIN   S16_MIN
53 #define UINT32_MAX  U32_MAX
54 #define INT32_MAX   S32_MAX
55 #define INT32_MIN   S32_MIN
56 #define UINT64_MAX  U64_MAX
57 #define INT64_MAX   S64_MAX
58 #define INT64_MIN   S64_MIN
59 
60 #define CHAR_BIT    8
61 
62 #if (defined(CONFIG_64BIT) && !defined(CONFIG_SPL_BUILD)) || \
63 	(defined(CONFIG_SPL_64BIT) && defined(CONFIG_SPL_BUILD))
64     #define UINTPTR_MAX UINT64_MAX
65 #else
66     #define UINTPTR_MAX UINT32_MAX
67 #endif
68 
69 #ifndef SIZE_MAX
70 #define SIZE_MAX    UINTPTR_MAX
71 #endif
72 #ifndef SSIZE_MAX
73 #define SSIZE_MAX   ((ssize_t)(SIZE_MAX >> 1))
74 #endif
75 
76 #endif /* _LIMITS_H */
77