/* * Copyright (c) mlibc & plct lab * * SPDX-License-Identifier: MIT * * Change Logs: * Date Author Notes * 2023/06/16 bernard the first verison */ #ifndef MLIBC_STDINT_H__ #define MLIBC_STDINT_H__ typedef signed char int8_t; typedef signed short int16_t; typedef signed int int32_t; typedef signed long long int64_t; typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; typedef unsigned long uintptr_t; typedef signed long intptr_t; #define INT8_MIN (-1-0x7f) #define INT16_MIN (-1-0x7fff) #define INT32_MIN (-1-0x7fffffff) #define INT64_MIN (-1-0x7fffffffffffffff) #define INT8_MAX (0x7f) #define INT16_MAX (0x7fff) #define INT32_MAX (0x7fffffff) #define INT64_MAX (0x7fffffffffffffff) #define UINT8_MAX (0xff) #define UINT16_MAX (0xffff) #define UINT32_MAX (0xffffffffu) #define UINT64_MAX (0xffffffffffffffffu) #if (defined(__GNUC__) && (__SIZEOF_POINTER__ == 8)) /* for 64bit */ #define INTPTR_MIN INT64_MIN #define INTPTR_MAX INT64_MAX #define UINTPTR_MAX UINT64_MAX #define PTRDIFF_MIN INT64_MIN #define PTRDIFF_MAX INT64_MAX #define SIZE_MAX UINT64_MAX #else /* for 32bit (default) */ #define INTPTR_MIN INT32_MIN #define INTPTR_MAX INT32_MAX #define UINTPTR_MAX UINT32_MAX #define PTRDIFF_MIN INT32_MIN #define PTRDIFF_MAX INT32_MAX #define SIZE_MAX UINT32_MAX #endif /* __GNUC__ */ #endif /*MLIBC_STDINT_H__*/