1#ifndef _KERNEL_LIBKERN_TYPES_H
2#define _KERNEL_LIBKERN_TYPES_H
3
4#include <libkern/_types/_va_list.h>
5#include <libkern/bits/types.h>
6
7#ifndef __stdints_defined
8#define __stdints_defined
9typedef __int8_t int8_t;
10typedef __int16_t int16_t;
11typedef __int32_t int32_t;
12typedef __int64_t int64_t;
13typedef __uint8_t uint8_t;
14typedef __uint16_t uint16_t;
15typedef __uint32_t uint32_t;
16typedef __uint64_t uint64_t;
17#endif // __stdints_defined
18
19#ifndef __dev_t_defined
20#define __dev_t_defined
21typedef __dev_t dev_t;
22#endif // __dev_t_defined
23
24#ifndef __uid_t_defined
25#define __uid_t_defined
26typedef __uid_t uid_t;
27#endif // __uid_t_defined
28
29#ifndef __gid_t_defined
30#define __gid_t_defined
31typedef __gid_t gid_t;
32#endif // __gid_t_defined
33
34#ifndef __ino_t_defined
35#define __ino_t_defined
36typedef __ino_t ino_t;
37#endif // __ino_t_defined
38
39#ifndef __ino64_t_defined
40#define __ino64_t_defined
41typedef __ino64_t ino64_t;
42#endif // __ino64_t_defined
43
44#ifndef __mode_t_defined
45#define __mode_t_defined
46typedef __mode_t mode_t;
47#endif // __mode_t_defined
48
49#ifndef __nlink_t_defined
50#define __nlink_t_defined
51typedef __nlink_t nlink_t;
52#endif // __nlink_t_defined
53
54#ifndef __off_t_defined
55#define __off_t_defined
56typedef __off_t off_t;
57#endif // __off_t_defined
58
59#ifndef __off64_t_defined
60#define __off64_t_defined
61typedef __off64_t off64_t;
62#endif // __off64_t_defined
63
64#ifndef __pid_t_defined
65#define __pid_t_defined
66typedef __pid_t pid_t;
67#endif // __pid_t_defined
68
69#ifndef __fsid_t_defined
70#define __fsid_t_defined
71typedef __fsid_t fsid_t;
72#endif // __fsid_t_defined
73
74#ifndef __time_t_defined
75#define __time_t_defined
76typedef __time_t time_t;
77#endif // __time_t_defined
78
79#ifdef __i386__
80#if defined(__clang__)
81typedef unsigned int size_t;
82typedef int ssize_t;
83#elif defined(__GNUC__) || defined(__GNUG__)
84typedef unsigned long size_t;
85typedef long ssize_t;
86#endif
87#elif __arm__
88typedef unsigned int size_t;
89typedef int ssize_t;
90#endif
91
92typedef int32_t intptr_t;
93typedef uint32_t uintptr_t;
94
95#define bool _Bool
96#define true (1)
97#define false (0)
98
99#define likely(x) __builtin_expect(!!(x), 1)
100#define unlikely(x) __builtin_expect(!!(x), 0)
101
102#define NULL ((void*)0)
103
104#define MINORBITS 20
105#define MINORMASK ((1U << MINORBITS) - 1)
106
107#define MAJOR(dev) ((unsigned int)((dev) >> MINORBITS))
108#define MINOR(dev) ((unsigned int)((dev)&MINORMASK))
109#define MKDEV(ma, mi) (((ma) << MINORBITS) | (mi))
110
111#endif // _KERNEL_LIBKERN_TYPES_H