extern "C" {
#endif
+#include <features.h>
+
#define __NEED_ino_t
#define __NEED_dev_t
#define __NEED_uid_t
#define __NEED_timer_t
#define __NEED_clockid_t
-#define __NEED_int8_t
-#define __NEED_int16_t
-#define __NEED_int32_t
-#define __NEED_int64_t
-
-#define __NEED_u_int8_t
-#define __NEED_u_int16_t
-#define __NEED_u_int32_t
-#define __NEED_u_int64_t
-
-#define __NEED_register_t
-
#define __NEED_blkcnt_t
#define __NEED_fsblkcnt_t
#define __NEED_fsfilcnt_t
#define __NEED_id_t
#define __NEED_key_t
#define __NEED_clock_t
-#define __NEED_useconds_t
#define __NEED_suseconds_t
#define __NEED_blksize_t
#define __NEED_pthread_spinlock_t
#define __NEED_pthread_key_t
#define __NEED_pthread_once_t
+#define __NEED_useconds_t
+
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define __NEED_int8_t
+#define __NEED_int16_t
+#define __NEED_int32_t
+#define __NEED_int64_t
+#define __NEED_u_int64_t
+#define __NEED_register_t
+#endif
#include <bits/alltypes.h>
-#ifdef _GNU_SOURCE
-typedef unsigned long caddr_t;
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+typedef unsigned char u_int8_t;
+typedef unsigned short u_int16_t;
+typedef unsigned u_int32_t;
+typedef char *caddr_t;
typedef unsigned char u_char;
typedef unsigned short u_short, ushort;
typedef unsigned u_int, uint;
typedef unsigned long long u_quad_t;
#include <endian.h>
#include <sys/select.h>
-#include <sys/sysmacros.h>
+#endif
+
+#if defined(_LARGEFILE64_SOURCE)
+#define blkcnt64_t blkcnt_t
+#define fsblkcnt64_t fsblkcnt_t
+#define fsfilcnt64_t fsfilcnt_t
+#define ino64_t ino_t
+#define off64_t off_t
#endif
#ifdef __cplusplus
}
#endif
#endif
-
-