refactor headers, especially alltypes.h, and improve C++ ABI compat
[musl] / include / alltypes.h.in
1 TYPEDEF unsigned _Addr size_t;
2 TYPEDEF unsigned _Addr uintptr_t;
3 TYPEDEF _Addr ptrdiff_t;
4 TYPEDEF _Addr ssize_t;
5 TYPEDEF _Addr intptr_t;
6
7 TYPEDEF signed char     int8_t;
8 TYPEDEF short           int16_t;
9 TYPEDEF int             int32_t;
10 TYPEDEF _Int64          int64_t;
11 TYPEDEF _Int64          intmax_t;
12 TYPEDEF unsigned char   uint8_t;
13 TYPEDEF unsigned short  uint16_t;
14 TYPEDEF unsigned int    uint32_t;
15 TYPEDEF unsigned _Int64 uint64_t;
16 TYPEDEF unsigned _Int64 uintmax_t;
17
18 TYPEDEF unsigned mode_t;
19 TYPEDEF unsigned nlink_t;
20 TYPEDEF _Int64 off_t;
21 TYPEDEF unsigned _Int64 ino_t;
22 TYPEDEF unsigned _Int64 dev_t;
23 TYPEDEF long blksize_t;
24 TYPEDEF _Int64 blkcnt_t;
25 TYPEDEF unsigned _Int64 fsblkcnt_t;
26 TYPEDEF unsigned _Int64 fsfilcnt_t;
27
28 TYPEDEF unsigned long wctype_t;
29
30 TYPEDEF void * timer_t;
31 TYPEDEF int clockid_t;
32 TYPEDEF long clock_t;
33 STRUCT timeval { time_t tv_sec; suseconds_t tv_usec; };
34 STRUCT timespec { time_t tv_sec; long tv_nsec; };
35
36 TYPEDEF int pid_t;
37 TYPEDEF unsigned id_t;
38 TYPEDEF unsigned uid_t;
39 TYPEDEF unsigned gid_t;
40 TYPEDEF int key_t;
41 TYPEDEF unsigned useconds_t;
42
43 #ifdef __cplusplus
44 TYPEDEF unsigned long pthread_t;
45 #else
46 TYPEDEF struct __pthread * pthread_t;
47 #endif
48 TYPEDEF int pthread_once_t;
49 TYPEDEF int pthread_key_t;
50 TYPEDEF int pthread_spinlock_t;
51 TYPEDEF unsigned pthread_mutexattr_t;
52 TYPEDEF unsigned pthread_condattr_t;
53 TYPEDEF unsigned pthread_barrierattr_t;
54 TYPEDEF struct { unsigned __attr[2]; } pthread_rwlockattr_t;
55
56 TYPEDEF struct _IO_FILE FILE;
57
58 TYPEDEF struct __locale_struct * locale_t;
59
60 TYPEDEF struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
61
62 STRUCT iovec { void *iov_base; size_t iov_len; };
63
64 TYPEDEF unsigned socklen_t;
65 TYPEDEF unsigned short sa_family_t;