1*329c5c4fSAndrew Jones /* SPDX-License-Identifier: GPL-2.0-only */ 2*329c5c4fSAndrew Jones #ifndef _LIMITS_H_ 3*329c5c4fSAndrew Jones #define _LIMITS_H_ 4*329c5c4fSAndrew Jones 5*329c5c4fSAndrew Jones #if __CHAR_BIT__ == 8 6*329c5c4fSAndrew Jones # if __CHAR_UNSIGNED__ 7*329c5c4fSAndrew Jones # define CHAR_MIN 0 8*329c5c4fSAndrew Jones # define CHAR_MAX __UINT8_MAX__ 9*329c5c4fSAndrew Jones # else 10*329c5c4fSAndrew Jones # define CHAR_MAX __INT8_MAX__ 11*329c5c4fSAndrew Jones # define CHAR_MIN (-CHAR_MAX - 1) 12*329c5c4fSAndrew Jones # endif 13*329c5c4fSAndrew Jones #endif 14*329c5c4fSAndrew Jones 15*329c5c4fSAndrew Jones #if __SHRT_WIDTH__ == 16 16*329c5c4fSAndrew Jones # define SHRT_MAX __INT16_MAX__ 17*329c5c4fSAndrew Jones # define SHRT_MIN (-SHRT_MAX - 1) 18*329c5c4fSAndrew Jones # define USHRT_MAX __UINT16_MAX__ 19*329c5c4fSAndrew Jones #endif 20*329c5c4fSAndrew Jones 21*329c5c4fSAndrew Jones #if __INT_WIDTH__ == 32 22*329c5c4fSAndrew Jones # define INT_MAX __INT32_MAX__ 23*329c5c4fSAndrew Jones # define INT_MIN (-INT_MAX - 1) 24*329c5c4fSAndrew Jones # define UINT_MAX __UINT32_MAX__ 25*329c5c4fSAndrew Jones #endif 26*329c5c4fSAndrew Jones 27*329c5c4fSAndrew Jones #if __LONG_WIDTH__ == 64 28*329c5c4fSAndrew Jones # define LONG_MAX __INT64_MAX__ 29*329c5c4fSAndrew Jones # define LONG_MIN (-LONG_MAX - 1) 30*329c5c4fSAndrew Jones # define ULONG_MAX __UINT64_MAX__ 31*329c5c4fSAndrew Jones #elif __LONG_WIDTH__ == 32 32*329c5c4fSAndrew Jones # define LONG_MAX __INT32_MAX__ 33*329c5c4fSAndrew Jones # define LONG_MIN (-LONG_MAX - 1) 34*329c5c4fSAndrew Jones # define ULONG_MAX __UINT32_MAX__ 35*329c5c4fSAndrew Jones #endif 36*329c5c4fSAndrew Jones 37*329c5c4fSAndrew Jones #if __LONG_LONG_WIDTH__ == 64 38*329c5c4fSAndrew Jones # define LLONG_MAX __INT64_MAX__ 39*329c5c4fSAndrew Jones # define LLONG_MIN (-LLONG_MAX - 1) 40*329c5c4fSAndrew Jones # define ULLONG_MAX __UINT64_MAX__ 41*329c5c4fSAndrew Jones #endif 42*329c5c4fSAndrew Jones 43*329c5c4fSAndrew Jones #endif /* _LIMITS_H_ */ 44