zephyr/lib/libc/minimal/include/limits.h

90 lines
1.8 KiB
C

/* limits.h */
/*
* Copyright (c) 2014 Wind River Systems, Inc.
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_LIB_LIBC_MINIMAL_INCLUDE_LIMITS_H_
#define ZEPHYR_LIB_LIBC_MINIMAL_INCLUDE_LIMITS_H_
#ifdef __cplusplus
extern "C" {
#endif
#if __CHAR_BIT__ == 8
#define UCHAR_MAX 0xFFU
#else
#error "unexpected __CHAR_BIT__ value"
#endif
#define SCHAR_MAX __SCHAR_MAX__
#define SCHAR_MIN (-SCHAR_MAX - 1)
#ifdef __CHAR_UNSIGNED__
/* 'char' is an unsigned type */
#define CHAR_MAX UCHAR_MAX
#define CHAR_MIN 0
#else
/* 'char' is a signed type */
#define CHAR_MAX SCHAR_MAX
#define CHAR_MIN SCHAR_MIN
#endif
#define CHAR_BIT __CHAR_BIT__
#define LONG_BIT (__SIZEOF_LONG__ * CHAR_BIT)
#define WORD_BIT (__SIZEOF_POINTER__ * CHAR_BIT)
#define INT_MAX __INT_MAX__
#define SHRT_MAX __SHRT_MAX__
#define LONG_MAX __LONG_MAX__
#define LLONG_MAX __LONG_LONG_MAX__
#define INT_MIN (-INT_MAX - 1)
#define SHRT_MIN (-SHRT_MAX - 1)
#define LONG_MIN (-LONG_MAX - 1L)
#define LLONG_MIN (-LLONG_MAX - 1LL)
#if __SIZE_MAX__ == __UINT32_MAX__
#define SSIZE_MAX __INT32_MAX__
#elif __SIZE_MAX__ == __UINT64_MAX__
#define SSIZE_MAX __INT64_MAX__
#else
#error "unexpected __SIZE_MAX__ value"
#endif
#if __SIZEOF_SHORT__ == 2
#define USHRT_MAX 0xFFFFU
#else
#error "unexpected __SIZEOF_SHORT__ value"
#endif
#if __SIZEOF_INT__ == 4
#define UINT_MAX 0xFFFFFFFFU
#else
#error "unexpected __SIZEOF_INT__ value"
#endif
#if __SIZEOF_LONG__ == 4
#define ULONG_MAX 0xFFFFFFFFUL
#elif __SIZEOF_LONG__ == 8
#define ULONG_MAX 0xFFFFFFFFFFFFFFFFUL
#else
#error "unexpected __SIZEOF_LONG__ value"
#endif
#if __SIZEOF_LONG_LONG__ == 8
#define ULLONG_MAX 0xFFFFFFFFFFFFFFFFULL
#else
#error "unexpected __SIZEOF_LONG_LONG__ value"
#endif
#define PATH_MAX 256
#ifdef __cplusplus
}
#endif
#endif /* ZEPHYR_LIB_LIBC_MINIMAL_INCLUDE_LIMITS_H_ */