policy has long been that these definitions are purely a function of whether long/pointer is 32- or 64-bit, and that they are not allowed to vary per-arch. move the definition to the shared alltypes.h.in fragment, using integer constant expressions in terms of sizeof to vary the array dimensions appropriately. I'm not sure whether this is more or less ugly than using preprocessor conditionals and two sets of definitions here, but either way is a lot less ugly than repeating the same thing for every arch.
91 lines
3.2 KiB
C
91 lines
3.2 KiB
C
#define __LITTLE_ENDIAN 1234
|
|
#define __BIG_ENDIAN 4321
|
|
|
|
TYPEDEF unsigned _Addr size_t;
|
|
TYPEDEF unsigned _Addr uintptr_t;
|
|
TYPEDEF _Addr ptrdiff_t;
|
|
TYPEDEF _Addr ssize_t;
|
|
TYPEDEF _Addr intptr_t;
|
|
TYPEDEF _Addr regoff_t;
|
|
TYPEDEF _Reg register_t;
|
|
|
|
TYPEDEF signed char int8_t;
|
|
TYPEDEF signed short int16_t;
|
|
TYPEDEF signed int int32_t;
|
|
TYPEDEF signed _Int64 int64_t;
|
|
TYPEDEF signed _Int64 intmax_t;
|
|
TYPEDEF unsigned char uint8_t;
|
|
TYPEDEF unsigned short uint16_t;
|
|
TYPEDEF unsigned int uint32_t;
|
|
TYPEDEF unsigned _Int64 uint64_t;
|
|
TYPEDEF unsigned _Int64 u_int64_t;
|
|
TYPEDEF unsigned _Int64 uintmax_t;
|
|
|
|
TYPEDEF unsigned mode_t;
|
|
TYPEDEF unsigned _Reg nlink_t;
|
|
TYPEDEF _Int64 off_t;
|
|
TYPEDEF unsigned _Int64 ino_t;
|
|
TYPEDEF unsigned _Int64 dev_t;
|
|
TYPEDEF long blksize_t;
|
|
TYPEDEF _Int64 blkcnt_t;
|
|
TYPEDEF unsigned _Int64 fsblkcnt_t;
|
|
TYPEDEF unsigned _Int64 fsfilcnt_t;
|
|
|
|
TYPEDEF unsigned wint_t;
|
|
TYPEDEF unsigned long wctype_t;
|
|
|
|
TYPEDEF void * timer_t;
|
|
TYPEDEF int clockid_t;
|
|
TYPEDEF long clock_t;
|
|
STRUCT timeval { time_t tv_sec; suseconds_t tv_usec; };
|
|
STRUCT timespec { time_t tv_sec; long tv_nsec; };
|
|
|
|
TYPEDEF int pid_t;
|
|
TYPEDEF unsigned id_t;
|
|
TYPEDEF unsigned uid_t;
|
|
TYPEDEF unsigned gid_t;
|
|
TYPEDEF int key_t;
|
|
TYPEDEF unsigned useconds_t;
|
|
|
|
#ifdef __cplusplus
|
|
TYPEDEF unsigned long pthread_t;
|
|
#else
|
|
TYPEDEF struct __pthread * pthread_t;
|
|
#endif
|
|
TYPEDEF int pthread_once_t;
|
|
TYPEDEF unsigned pthread_key_t;
|
|
TYPEDEF int pthread_spinlock_t;
|
|
TYPEDEF struct { unsigned __attr; } pthread_mutexattr_t;
|
|
TYPEDEF struct { unsigned __attr; } pthread_condattr_t;
|
|
TYPEDEF struct { unsigned __attr; } pthread_barrierattr_t;
|
|
TYPEDEF struct { unsigned __attr[2]; } pthread_rwlockattr_t;
|
|
|
|
STRUCT _IO_FILE { char __x; };
|
|
TYPEDEF struct _IO_FILE FILE;
|
|
|
|
TYPEDEF __builtin_va_list va_list;
|
|
TYPEDEF __builtin_va_list __isoc_va_list;
|
|
|
|
TYPEDEF struct __mbstate_t { unsigned __opaque1, __opaque2; } mbstate_t;
|
|
|
|
TYPEDEF struct __locale_struct * locale_t;
|
|
|
|
TYPEDEF struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
|
|
|
|
STRUCT iovec { void *iov_base; size_t iov_len; };
|
|
|
|
TYPEDEF unsigned socklen_t;
|
|
TYPEDEF unsigned short sa_family_t;
|
|
|
|
TYPEDEF struct { union { int __i[sizeof(long)==8?14:9]; volatile int __vi[sizeof(long)==8?14:9]; unsigned long __s[sizeof(long)==8?7:9]; } __u; } pthread_attr_t;
|
|
TYPEDEF struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } pthread_mutex_t;
|
|
TYPEDEF struct { union { int __i[sizeof(long)==8?10:6]; volatile int __vi[sizeof(long)==8?10:6]; volatile void *volatile __p[sizeof(long)==8?5:6]; } __u; } mtx_t;
|
|
TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } pthread_cond_t;
|
|
TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[12*sizeof(int)/sizeof(void*)]; } __u; } cnd_t;
|
|
TYPEDEF struct { union { int __i[sizeof(long)==8?14:8]; volatile int __vi[sizeof(long)==8?14:8]; void *__p[sizeof(long)==8?7:8]; } __u; } pthread_rwlock_t;
|
|
TYPEDEF struct { union { int __i[sizeof(long)==8?8:5]; volatile int __vi[sizeof(long)==8?8:5]; void *__p[sizeof(long)==8?4:5]; } __u; } pthread_barrier_t;
|
|
|
|
#undef _Addr
|
|
#undef _Int64
|
|
#undef _Reg
|