1eba8b6baSopenharmony_ci#include <linux/version.h>
2eba8b6baSopenharmony_ci
3eba8b6baSopenharmony_ci// Various bits of support needed by Linux headers.
4eba8b6baSopenharmony_ci
5eba8b6baSopenharmony_citypedef __UINT8_TYPE__ uint8_t;
6eba8b6baSopenharmony_citypedef __UINT16_TYPE__ uint16_t;
7eba8b6baSopenharmony_citypedef __UINT32_TYPE__ uint32_t;
8eba8b6baSopenharmony_citypedef __UINT64_TYPE__ uint64_t;
9eba8b6baSopenharmony_citypedef __INT8_TYPE__ int8_t;
10eba8b6baSopenharmony_citypedef __INT16_TYPE__ int16_t;
11eba8b6baSopenharmony_citypedef __INT32_TYPE__ int32_t;
12eba8b6baSopenharmony_citypedef __INT64_TYPE__ int64_t;
13eba8b6baSopenharmony_citypedef __SIZE_TYPE__ size_t;
14eba8b6baSopenharmony_citypedef __PTRDIFF_TYPE__ ssize_t;
15eba8b6baSopenharmony_citypedef __PTRDIFF_TYPE__ ptrdiff_t;
16eba8b6baSopenharmony_citypedef __INTPTR_TYPE__ intptr_t;
17eba8b6baSopenharmony_citypedef __UINTPTR_TYPE__ uintptr_t;
18eba8b6baSopenharmony_ci
19eba8b6baSopenharmony_ci#define INT_MAX __INT_MAX__
20eba8b6baSopenharmony_ci#define INT_MIN	(-__INT_MAX__ - 1)
21eba8b6baSopenharmony_ci
22eba8b6baSopenharmony_ci#define memcpy __builtin_memcpy
23eba8b6baSopenharmony_ci#define memset __builtin_memset
24eba8b6baSopenharmony_ci#define strlen __builtin_strlen
25eba8b6baSopenharmony_ci
26eba8b6baSopenharmony_ci#define __builtin_bswap_16 __builtin_bswap16
27eba8b6baSopenharmony_ci#define __builtin_bswap_32 __builtin_bswap32
28eba8b6baSopenharmony_ci#define __builtin_bswap_64 __builtin_bswap64
29eba8b6baSopenharmony_ci
30eba8b6baSopenharmony_ci#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
31eba8b6baSopenharmony_ci#define ntohl(x)     (x)
32eba8b6baSopenharmony_ci#define ntohs(x)     (x)
33eba8b6baSopenharmony_ci#define htonl(x)     (x)
34eba8b6baSopenharmony_ci#define htons(x)     (x)
35eba8b6baSopenharmony_ci#elif __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
36eba8b6baSopenharmony_ci#define ntohl(x)     (__builtin_bswap32(x))
37eba8b6baSopenharmony_ci#define ntohs(x)     (__builtin_bswap16(x))
38eba8b6baSopenharmony_ci#define htonl(x)     (__builtin_bswap32(x))
39eba8b6baSopenharmony_ci#define htons(x)     (__builtin_bswap16(x))
40eba8b6baSopenharmony_ci#endif
41eba8b6baSopenharmony_ci
42eba8b6baSopenharmony_ci#define pid_t       __kernel_pid_t
43eba8b6baSopenharmony_ci#define ino_t       __kernel_ino_t
44eba8b6baSopenharmony_ci#define mode_t      __kernel_mode_t
45eba8b6baSopenharmony_ci#define nlink_t     __kernel_nlink_t
46eba8b6baSopenharmony_ci#define uid_t       __kernel_uid_t
47eba8b6baSopenharmony_ci#define gid_t       __kernel_gid_t
48eba8b6baSopenharmony_ci#define off_t       __kernel_off_t
49eba8b6baSopenharmony_ci#define time_t      __kernel_time_t
50eba8b6baSopenharmony_ci#define timer_t     __kernel_timer_t
51eba8b6baSopenharmony_ci#define clock_t     __kernel_clock_t
52eba8b6baSopenharmony_ci
53eba8b6baSopenharmony_ci#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,32)
54eba8b6baSopenharmony_ci#define sa_family_t uint16_t
55eba8b6baSopenharmony_ci#endif
56