matter.c

Cross-platform minimalist libc
git clone git://git.finwo.net/lib/matter.c
Log | Files | Refs | README | LICENSE

commit 7fb4c97f16dee1787a303b8ab7f98cc5da7f4d27
parent 68c338e529b38e430d8b8aa8bfbc9aa73eacdf9e
Author: Yersa Nordman <finwo@pm.me>
Date:   Sat, 12 Oct 2019 00:49:05 +0200

Added basic stdint

Diffstat:
Minclude/limits.h | 11+++++------
Ainclude/stdint.h | 50++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 55 insertions(+), 6 deletions(-)

diff --git a/include/limits.h b/include/limits.h @@ -12,9 +12,9 @@ #endif #ifndef __LONG_MAX__ #if __WORDSIZE == 64 -#define __LONG_MAX__ 0x7fffffffffffffffl +#define __LONG_MAX__ 0x7fffffffffffffffL #else -#define __LONG_MAX__ 0x7fffffffl +#define __LONG_MAX__ 0x7fffffffL #endif #endif @@ -48,11 +48,11 @@ #define LONG_MAX (__LONG_MAX__) #define ULONG_MAX (LONG_MAX * 2ul + 1) -#define LLONG_MAX 0x7fffffffffffffffll -#define LLONG_MIN (-1ll - LLONG_MAX) +#define LLONG_MAX 0x7fffffffffffffffLL +#define LLONG_MIN (-1LL - LLONG_MAX) /* Maximum value an `unsigned long long int' can hold. (Minimum is 0.) */ -#define ULLONG_MAX (~0ull) +#define ULLONG_MAX (~0ULL) #define SSIZE_MIN LONG_MIN #define SSIZE_MAX LONG_MAX @@ -76,7 +76,6 @@ #define LINE_MAX 2048 -/* mutt demanded these */ #define _POSIX_PATH_MAX PATH_MAX #define MB_LEN_MAX 16 diff --git a/include/stdint.h b/include/stdint.h @@ -0,0 +1,50 @@ +#ifndef _STDINT_H_ +#define _STDINT_H_ + +#include <limits.h> + +/* (u)int32_t */ +#ifndef uint32_t + #if (ULONG_MAX == 0xffffffffUL) + typedef unsigned long uint32_t; + #elif (UINT_MAX == 0xffffffffUL) + typedef unsigned int uint32_t; + #elif (USHRT_MAX == 0xffffffffUL) + typedef unsigned short uint32_t; + #endif +#endif +#ifndef int32_t + #if (LONG_MAX == 0x7fffffffL) + typedef signed long int32_t; + #elif (INT_MAX == 0x7fffffffL) + typedef signed int int32_t; + #elif (SHRT_MAX == 0x7fffffffL) + typedef signed short int32_t; + #endif +#endif + +/* (u)int64_t */ +#ifndef uint64_t + #if (ULLONG_MAX == 0xffffffffffffffffULL) + typedef unsigned long long uint64_t; + #elif (ULONG_MAX == 0xffffffffffffffffULL) + typedef unsigned long uint64_t; + #elif (UINT_MAX == 0xffffffffffffffffULL) + typedef unsigned int uint64_t; + #elif (USHRT_MAX == 0xffffffffffffffffULL) + typedef unsigned short uint64_t; + #endif +#endif +#ifndef int64_t + #if (ULLONG_MAX == 0x7fffffffffffffffULL) + typedef signed long long int64_t; + #elif (ULONG_MAX == 0x7fffffffffffffffULL) + typedef signed long int64_t; + #elif (UINT_MAX == 0x7fffffffffffffffULL) + typedef signed int int64_t; + #elif (USHRT_MAX == 0x7fffffffffffffffULL) + typedef signed short int64_t; + #endif +#endif + +#endif // _STDINT_H_