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