refactor headers, especially alltypes.h, and improve C++ ABI compat
[musl] / include / sys / types.h
index 4b1e374..db8661b 100644 (file)
@@ -4,6 +4,8 @@
 extern "C" {
 #endif
 
+#include <features.h>
+
 #define __NEED_ino_t
 #define __NEED_dev_t
 #define __NEED_uid_t
@@ -23,10 +25,6 @@ extern "C" {
 #define __NEED_int32_t
 #define __NEED_int64_t
 
-#define __NEED___uint16_t
-#define __NEED___uint32_t
-#define __NEED___uint64_t
-
 #define __NEED_blkcnt_t
 #define __NEED_fsblkcnt_t
 #define __NEED_fsfilcnt_t
@@ -50,13 +48,14 @@ extern "C" {
 #define __NEED_pthread_spinlock_t
 #define __NEED_pthread_key_t
 #define __NEED_pthread_once_t
+#define __NEED_useconds_t
 
 #include <bits/alltypes.h>
 
 typedef unsigned char u_int8_t;
-typedef __uint16_t u_int16_t;
-typedef __uint32_t u_int32_t;
-typedef __uint64_t u_int64_t;
+typedef unsigned short u_int16_t;
+typedef unsigned u_int32_t;
+typedef unsigned long long u_int64_t;
 
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 typedef char *caddr_t;
@@ -72,7 +71,7 @@ typedef long register_t;
 #include <sys/sysmacros.h>
 #endif
 
-#ifdef _LARGEFILE64_SOURCE
+#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
 #define blksize64_t blksize_t
 #define blkcnt64_t blkcnt_t
 #define fsblkcnt64_t fsblkcnt_t