Include integer limits from generic stdint.h in system-specific stdint.h

This commit is contained in:
Ori Bernstein 2019-09-06 18:01:52 -07:00
parent c09546ccea
commit ff9ce8210a
4 changed files with 28 additions and 57 deletions

View file

@ -1,31 +1,9 @@
#ifndef _STDINT_H_ #ifndef _STDINT_ARCH_H_
#define _STDINT_H_ 1 #define _STDINT_ARCH_H_ 1
typedef char int8_t; typedef long long _intptr_t;
typedef short int16_t; typedef unsigned long long _uintptr_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; #include "/sys/include/ape/stdint.h"
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
#endif #endif

View file

@ -1,31 +1,9 @@
#ifndef _STDINT_H_ #ifndef _STDINT_ARCH_H_
#define _STDINT_H_ 1 #define _STDINT_ARCH_H_ 1
typedef char int8_t; typedef long long _intptr_t;
typedef short int16_t; typedef unsigned long long _uintptr_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; #include "/sys/include/ape/stdint.h"
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
#endif #endif

View file

@ -75,12 +75,13 @@
/*#define SEM_NSEMS_MAX _POSIX_SEM_NSEMS_MAX */ /*#define SEM_NSEMS_MAX _POSIX_SEM_NSEMS_MAX */
/*#define SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX */ /*#define SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX */
/*#define SIGQUEUE_MAX _POSIX_SIGQUEUE_MAX */ /*#define SIGQUEUE_MAX _POSIX_SIGQUEUE_MAX */
#define SSIZE_MIN LONG_MIN
#define SSIZE_MAX LONG_MAX #define SSIZE_MAX LONG_MAX
#define SIZE_MAX ULONG_MAX
/*#define STREAM_MAX _POSIX_STREAM_MAX */ /*#define STREAM_MAX _POSIX_STREAM_MAX */
/*#define TIMER_MAX _POSIX_TIMER_MAX */ /*#define TIMER_MAX _POSIX_TIMER_MAX */
#define TZNAME_MAX _POSIX_TZNAME_MAX #define TZNAME_MAX _POSIX_TZNAME_MAX
#ifdef _LIMITS_EXTENSION #ifdef _LIMITS_EXTENSION
/* some things are just too big for pedagogy (X!) */ /* some things are just too big for pedagogy (X!) */
#include <sys/limits.h> #include <sys/limits.h>

View file

@ -1,8 +1,14 @@
#ifndef _STDINT_H_ #ifndef _STDINT_GENERIC_H_
#define _STDINT_H_ 1 #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 int _intptr_t;
typedef unsigned int _uintptr_t; typedef unsigned int _uintptr_t;
#endif
typedef char int8_t; typedef char int8_t;
typedef short int16_t; typedef short int16_t;
@ -12,6 +18,7 @@ typedef unsigned char uint8_t;
typedef unsigned short uint16_t; typedef unsigned short uint16_t;
typedef unsigned int uint32_t; typedef unsigned int uint32_t;
typedef unsigned long long uint64_t; typedef unsigned long long uint64_t;
typedef _intptr_t intptr_t; typedef _intptr_t intptr_t;
typedef _uintptr_t uintptr_t; typedef _uintptr_t uintptr_t;
@ -35,4 +42,11 @@ typedef _uintptr_t uintptr_t;
#define UINT32_MAX 0xffffffffL #define UINT32_MAX 0xffffffffL
#define UINT64_MAX 0xffffffffffffffffULL #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 #endif