/* SPDX-License-Identifier: GPL-2.0-only */ #ifndef STDINT_H #define STDINT_H /* Fixed width integer types */ typedef signed char int8_t; typedef unsigned char uint8_t; typedef signed short int16_t; typedef unsigned short uint16_t; typedef signed int int32_t; typedef unsigned int uint32_t; typedef signed long long int64_t; typedef unsigned long long uint64_t; /* Types for 'void *' pointers */ typedef signed long intptr_t; typedef unsigned long uintptr_t; /* Ensure that the widths are all correct */ _Static_assert(sizeof(int8_t) == 1, "Size of int8_t is incorrect"); _Static_assert(sizeof(uint8_t) == 1, "Size of uint8_t is incorrect"); _Static_assert(sizeof(int16_t) == 2, "Size of int16_t is incorrect"); _Static_assert(sizeof(uint16_t) == 2, "Size of uint16_t is incorrect"); _Static_assert(sizeof(int32_t) == 4, "Size of int32_t is incorrect"); _Static_assert(sizeof(uint32_t) == 4, "Size of uint32_t is incorrect"); _Static_assert(sizeof(int64_t) == 8, "Size of int64_t is incorrect"); _Static_assert(sizeof(uint64_t) == 8, "Size of uint64_t is incorrect"); _Static_assert(sizeof(intptr_t) == sizeof(void *), "Size of intptr_t is incorrect"); _Static_assert(sizeof(uintptr_t) == sizeof(void *), "Size of uintptr_t is incorrect"); /* Maximum width integer types */ typedef int64_t intmax_t; typedef uint64_t uintmax_t; /* Convenient typedefs */ typedef int8_t s8; typedef uint8_t u8; typedef int16_t s16; typedef uint16_t u16; typedef int32_t s32; typedef uint32_t u32; typedef int64_t s64; typedef uint64_t u64; /* Limits of integer types */ #define INT8_MIN ((int8_t)0x80) #define INT8_MAX ((int8_t)0x7F) #define UINT8_MAX ((uint8_t)0xFF) #define INT16_MIN ((int16_t)0x8000) #define INT16_MAX ((int16_t)0x7FFF) #define UINT16_MAX ((uint16_t)0xFFFF) #define INT32_MIN ((int32_t)0x80000000) #define INT32_MAX ((int32_t)0x7FFFFFFF) #define UINT32_MAX ((uint32_t)0xFFFFFFFF) #define INT64_MIN ((int64_t)0x8000000000000000) #define INT64_MAX ((int64_t)0x7FFFFFFFFFFFFFFF) #define UINT64_MAX ((uint64_t)0xFFFFFFFFFFFFFFFF) #define INTMAX_MIN INT64_MIN #define INTMAX_MAX INT64_MAX #define UINTMAX_MAX UINT64_MAX #endif /* STDINT_H */