1 /* limits.h */ 2 3 /* 4 * Copyright (c) 2014 Wind River Systems, Inc. 5 * 6 * SPDX-License-Identifier: Apache-2.0 7 */ 8 9 #ifndef ZEPHYR_LIB_LIBC_MINIMAL_INCLUDE_LIMITS_H_ 10 #define ZEPHYR_LIB_LIBC_MINIMAL_INCLUDE_LIMITS_H_ 11 12 #ifdef __cplusplus 13 extern "C" { 14 #endif 15 16 #if __CHAR_BIT__ == 8 17 #define UCHAR_MAX 0xFFU 18 #else 19 #error "unexpected __CHAR_BIT__ value" 20 #endif 21 22 #define SCHAR_MAX __SCHAR_MAX__ 23 #define SCHAR_MIN (-SCHAR_MAX - 1) 24 25 #ifdef __CHAR_UNSIGNED__ 26 /* 'char' is an unsigned type */ 27 #define CHAR_MAX UCHAR_MAX 28 #define CHAR_MIN 0 29 #else 30 /* 'char' is a signed type */ 31 #define CHAR_MAX SCHAR_MAX 32 #define CHAR_MIN SCHAR_MIN 33 #endif 34 35 #define CHAR_BIT __CHAR_BIT__ 36 #define LONG_BIT (__SIZEOF_LONG__ * CHAR_BIT) 37 #define WORD_BIT (__SIZEOF_POINTER__ * CHAR_BIT) 38 39 #define INT_MAX __INT_MAX__ 40 #define SHRT_MAX __SHRT_MAX__ 41 #define LONG_MAX __LONG_MAX__ 42 #define LLONG_MAX __LONG_LONG_MAX__ 43 44 #define INT_MIN (-INT_MAX - 1) 45 #define SHRT_MIN (-SHRT_MAX - 1) 46 #define LONG_MIN (-LONG_MAX - 1L) 47 #define LLONG_MIN (-LLONG_MAX - 1LL) 48 49 #if __SIZE_MAX__ == __UINT32_MAX__ 50 #define SSIZE_MAX __INT32_MAX__ 51 #elif __SIZE_MAX__ == __UINT64_MAX__ 52 #define SSIZE_MAX __INT64_MAX__ 53 #else 54 #error "unexpected __SIZE_MAX__ value" 55 #endif 56 57 #if __SIZEOF_SHORT__ == 2 58 #define USHRT_MAX 0xFFFFU 59 #else 60 #error "unexpected __SIZEOF_SHORT__ value" 61 #endif 62 63 #if __SIZEOF_INT__ == 4 64 #define UINT_MAX 0xFFFFFFFFU 65 #else 66 #error "unexpected __SIZEOF_INT__ value" 67 #endif 68 69 #if __SIZEOF_LONG__ == 4 70 #define ULONG_MAX 0xFFFFFFFFUL 71 #elif __SIZEOF_LONG__ == 8 72 #define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL 73 #else 74 #error "unexpected __SIZEOF_LONG__ value" 75 #endif 76 77 #if __SIZEOF_LONG_LONG__ == 8 78 #define ULLONG_MAX 0xFFFFFFFFFFFFFFFFULL 79 #else 80 #error "unexpected __SIZEOF_LONG_LONG__ value" 81 #endif 82 83 #define PATH_MAX 256 84 85 #ifdef __cplusplus 86 } 87 #endif 88 89 #endif /* ZEPHYR_LIB_LIBC_MINIMAL_INCLUDE_LIMITS_H_ */ 90