From ff9ce8210aeaf968e08e16ab62c388b9cf555a06 Mon Sep 17 00:00:00 2001 From: Ori Bernstein Date: Fri, 6 Sep 2019 18:01:52 -0700 Subject: [PATCH] Include integer limits from generic stdint.h in system-specific stdint.h --- amd64/include/ape/stdint.h | 32 +++++--------------------------- arm64/include/ape/stdint.h | 32 +++++--------------------------- sys/include/ape/limits.h | 3 ++- sys/include/ape/stdint.h | 18 ++++++++++++++++-- 4 files changed, 28 insertions(+), 57 deletions(-) diff --git a/amd64/include/ape/stdint.h b/amd64/include/ape/stdint.h index b9f62ad18..ed0b2ef2c 100644 --- a/amd64/include/ape/stdint.h +++ b/amd64/include/ape/stdint.h @@ -1,31 +1,9 @@ -#ifndef _STDINT_H_ -#define _STDINT_H_ 1 +#ifndef _STDINT_ARCH_H_ +#define _STDINT_ARCH_H_ 1 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef 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 long long _intptr_t; +typedef unsigned long long _uintptr_t; -typedef long long intptr_t; -typedef unsigned long long uintptr_t; - -#define INT8_MIN 0x80 -#define INT16_MIN 0x8000 -#define INT32_MIN 0x80000000 -#define INT64_MIN 0x8000000000000000LL - -#define INT8_MAX 0x7f -#define INT16_MAX 0x7fff -#define INT32_MAX 0x7fffffff -#define INT64_MAX 0x7fffffffffffffffULL - -#define UINT8_MAX 0xff -#define UINT16_MAX 0xffff -#define UINT32_MAX 0xffffffffL -#define UINT64_MAX 0xffffffffffffffffULL +#include "/sys/include/ape/stdint.h" #endif diff --git a/arm64/include/ape/stdint.h b/arm64/include/ape/stdint.h index b9f62ad18..ed0b2ef2c 100644 --- a/arm64/include/ape/stdint.h +++ b/arm64/include/ape/stdint.h @@ -1,31 +1,9 @@ -#ifndef _STDINT_H_ -#define _STDINT_H_ 1 +#ifndef _STDINT_ARCH_H_ +#define _STDINT_ARCH_H_ 1 -typedef char int8_t; -typedef short int16_t; -typedef int int32_t; -typedef 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 long long _intptr_t; +typedef unsigned long long _uintptr_t; -typedef long long intptr_t; -typedef unsigned long long uintptr_t; - -#define INT8_MIN 0x80 -#define INT16_MIN 0x8000 -#define INT32_MIN 0x80000000 -#define INT64_MIN 0x8000000000000000LL - -#define INT8_MAX 0x7f -#define INT16_MAX 0x7fff -#define INT32_MAX 0x7fffffff -#define INT64_MAX 0x7fffffffffffffffULL - -#define UINT8_MAX 0xff -#define UINT16_MAX 0xffff -#define UINT32_MAX 0xffffffffL -#define UINT64_MAX 0xffffffffffffffffULL +#include "/sys/include/ape/stdint.h" #endif diff --git a/sys/include/ape/limits.h b/sys/include/ape/limits.h index 0b05c0df3..00ff45d17 100644 --- a/sys/include/ape/limits.h +++ b/sys/include/ape/limits.h @@ -75,12 +75,13 @@ /*#define SEM_NSEMS_MAX _POSIX_SEM_NSEMS_MAX */ /*#define SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX */ /*#define SIGQUEUE_MAX _POSIX_SIGQUEUE_MAX */ +#define SSIZE_MIN LONG_MIN #define SSIZE_MAX LONG_MAX -#define SIZE_MAX ULONG_MAX /*#define STREAM_MAX _POSIX_STREAM_MAX */ /*#define TIMER_MAX _POSIX_TIMER_MAX */ #define TZNAME_MAX _POSIX_TZNAME_MAX + #ifdef _LIMITS_EXTENSION /* some things are just too big for pedagogy (X!) */ #include diff --git a/sys/include/ape/stdint.h b/sys/include/ape/stdint.h index 2a5ed9520..4aa5381ae 100644 --- a/sys/include/ape/stdint.h +++ b/sys/include/ape/stdint.h @@ -1,8 +1,14 @@ -#ifndef _STDINT_H_ -#define _STDINT_H_ 1 +#ifndef _STDINT_GENERIC_H_ +#define _STDINT_GENERIC_H_ 1 +/* + * Default for 32 bit architectures, overriden by + * /$objtype/include/ape/stdint.h if needed. + */ +#ifndef _STDINT_ARCH_H_ typedef int _intptr_t; typedef unsigned int _uintptr_t; +#endif typedef char int8_t; typedef short int16_t; @@ -12,6 +18,7 @@ typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; + typedef _intptr_t intptr_t; typedef _uintptr_t uintptr_t; @@ -35,4 +42,11 @@ typedef _uintptr_t uintptr_t; #define UINT32_MAX 0xffffffffL #define UINT64_MAX 0xffffffffffffffffULL +/* + * Right now, all of our size_t types are 32 bit, even on + * 64 bit architectures. + */ +#define SIZE_MIN UINT32_MIN +#define SIZE_MAX UINT32_MAX + #endif