#ifndef _MLIBC_STDINT_H #define _MLIBC_STDINT_H #include #include // ---------------------------------------------------------------------------- // Type definitions. // ---------------------------------------------------------------------------- // Fixed-width (signed). typedef __mlibc_int8 int8_t; typedef __mlibc_int16 int16_t; typedef __mlibc_int32 int32_t; typedef __mlibc_int64 int64_t; // Fixed-width (unsigned). typedef __mlibc_uint8 uint8_t; typedef __mlibc_uint16 uint16_t; typedef __mlibc_uint32 uint32_t; typedef __mlibc_uint64 uint64_t; // Least-width (signed). typedef __mlibc_int8 int_least8_t; typedef __mlibc_int16 int_least16_t; typedef __mlibc_int32 int_least32_t; typedef __mlibc_int64 int_least64_t; // Least-width (unsigned). typedef __mlibc_uint8 uint_least8_t; typedef __mlibc_uint16 uint_least16_t; typedef __mlibc_uint32 uint_least32_t; typedef __mlibc_uint64 uint_least64_t; // Fast-width (signed). typedef __mlibc_int_fast8 int_fast8_t; typedef __mlibc_int_fast16 int_fast16_t; typedef __mlibc_int_fast32 int_fast32_t; typedef __mlibc_int_fast64 int_fast64_t; // Fast-width (unsigned). typedef __mlibc_uint_fast8 uint_fast8_t; typedef __mlibc_uint_fast16 uint_fast16_t; typedef __mlibc_uint_fast32 uint_fast32_t; typedef __mlibc_uint_fast64 uint_fast64_t; // Miscellaneous (signed). typedef __mlibc_intmax intmax_t; typedef __mlibc_intptr intptr_t; // Miscellaneous (unsigned). typedef __mlibc_uintmax uintmax_t; typedef __mlibc_uintptr uintptr_t; // ---------------------------------------------------------------------------- // Constants. // ---------------------------------------------------------------------------- // Fixed-width (signed). #define INT8_C(x) __MLIBC_INT8_C(x) #define INT16_C(x) __MLIBC_INT16_C(x) #define INT32_C(x) __MLIBC_INT32_C(x) #define INT64_C(x) __MLIBC_INT64_C(x) #define INTMAX_C(x) __MLIBC_INTMAX_C(x) // Fixed-width (unsigned). #define UINT8_C(x) __MLIBC_UINT8_C(x) #define UINT16_C(x) __MLIBC_UINT16_C(x) #define UINT32_C(x) __MLIBC_UINT32_C(x) #define UINT64_C(x) __MLIBC_UINT64_C(x) #define UINTMAX_C(x) __MLIBC_UINTMAX_C(x) // ---------------------------------------------------------------------------- // Limits. // ---------------------------------------------------------------------------- // Fixed-width (signed). #define INT8_MAX __MLIBC_INT8_MAX #define INT16_MAX __MLIBC_INT16_MAX #define INT32_MAX __MLIBC_INT32_MAX #define INT64_MAX __MLIBC_INT64_MAX #define INT8_MIN __MLIBC_INT8_MIN #define INT16_MIN __MLIBC_INT16_MIN #define INT32_MIN __MLIBC_INT32_MIN #define INT64_MIN __MLIBC_INT64_MIN // Fixed-width (unsigned). #define UINT8_MAX __MLIBC_UINT8_MAX #define UINT16_MAX __MLIBC_UINT16_MAX #define UINT32_MAX __MLIBC_UINT32_MAX #define UINT64_MAX __MLIBC_UINT64_MAX // Least-width (signed). #define INT_LEAST8_MAX __MLIBC_INT8_MAX #define INT_LEAST16_MAX __MLIBC_INT16_MAX #define INT_LEAST32_MAX __MLIBC_INT32_MAX #define INT_LEAST64_MAX __MLIBC_INT64_MAX #define INT_LEAST8_MIN __MLIBC_INT8_MIN #define INT_LEAST16_MIN __MLIBC_INT16_MIN #define INT_LEAST32_MIN __MLIBC_INT32_MIN #define INT_LEAST64_MIN __MLIBC_INT64_MIN // Least-width (unsigned). #define UINT_LEAST8_MAX __MLIBC_UINT8_MAX #define UINT_LEAST16_MAX __MLIBC_UINT16_MAX #define UINT_LEAST32_MAX __MLIBC_UINT32_MAX #define UINT_LEAST64_MAX __MLIBC_UINT64_MAX // Fast-width (signed). #define INT_FAST8_MAX __MLIBC_INT_FAST8_MAX #define INT_FAST16_MAX __MLIBC_INT_FAST16_MAX #define INT_FAST32_MAX __MLIBC_INT_FAST32_MAX #define INT_FAST64_MAX __MLIBC_INT_FAST64_MAX #define INT_FAST8_MIN __MLIBC_INT_FAST8_MIN #define INT_FAST16_MIN __MLIBC_INT_FAST16_MIN #define INT_FAST32_MIN __MLIBC_INT_FAST32_MIN #define INT_FAST64_MIN __MLIBC_INT_FAST64_MIN // Fast-width (unsigned). #define UINT_FAST8_MAX __MLIBC_UINT_FAST8_MAX #define UINT_FAST16_MAX __MLIBC_UINT_FAST16_MAX #define UINT_FAST32_MAX __MLIBC_UINT_FAST32_MAX #define UINT_FAST64_MAX __MLIBC_UINT_FAST64_MAX // Miscellaneous (signed). #define INTMAX_MAX __MLIBC_INTMAX_MAX #define INTPTR_MAX __MLIBC_INTPTR_MAX #define INTMAX_MIN __MLIBC_INTMAX_MIN #define INTPTR_MIN __MLIBC_INTPTR_MIN // Miscellaneous (unsigned). #define UINTMAX_MAX __MLIBC_UINTMAX_MAX #define UINTPTR_MAX __MLIBC_UINTPTR_MAX // Other limits (signed). #define PTRDIFF_MAX __MLIBC_PTRDIFF_MAX #define PTRDIFF_MIN __MLIBC_PTRDIFF_MIN #define SIG_ATOMIC_MAX __MLIBC_SIG_ATOMIC_MAX #define SIG_ATOMIC_MIN __MLIBC_SIG_ATOMIC_MIN #define WINT_MAX __MLIBC_WINT_MAX #define WINT_MIN __MLIBC_WINT_MIN // Other limits (unsigned). #define SIZE_MAX __MLIBC_SIZE_MAX #endif // _MLIBC_STDINT_H