XenevaOS
Loading...
Searching...
No Matches
kernel.h
Go to the documentation of this file.
1
4#ifndef __LINUX_KERNEL_H__
5#define __LINUX_KERNEL_H__
6
7#include <stdint.h>
8#include <Hal/AA64/aa64cpu.h>
9#include <Mm/kmalloc.h>
10#include <_null.h>
12#include <linux/bitmap.h>
13#include <linux/list.h>
14#include <linux/usb/ch9.h>
15#include <linux/timer.h>
16#include <linux/workqueue.h>
17#include <linux/usb/otg.h>
18#include <linux/usb/ch9.h>
19
20typedef uint8_t u8;
21typedef uint16_t u16;
22typedef uint32_t u32;
23typedef uint64_t u64;
24typedef int8_t s8;
25typedef int16_t s16;
26typedef int32_t s32;
27typedef int64_t s64;
28
29typedef uint8_t __u8;
33typedef int8_t __s8;
34typedef int16_t __s16;
35typedef int32_t __s32;
36typedef int64_t __s64;
37
38typedef uint8_t __le8;
45
46
47#define udelay(us) AA64SleepUS(us)
48#define mdelay(ms) AA64SleepMS(ms)
49#define msleep(ms) mdelay(ms)
50#define usleep(us) AA64SleepUS(us)
51
52#define GFP_KERNEL 0
53#define GFP_ATOMIC 1
54#define GFP_DMA 2
55
56#define kmalloc(size, flags) kmalloc(size)
57#define kzalloc(size, flags) kcalloc(size)
58
59#define container_of(ptr, type, member) \
60 ((type*)((char*)(ptr)- offsetof(type,member)))
61
62#define offsetof(type, member) \
63 ((size_t)&((type*)0)->member)
64
65#define IS_ENABLED(opt) (!!(opt))
66
71typedef int spinlock_t;
72typedef int mutex;
73
75#define spin_lock_init(l) do{} while(0)
76#define spin_lock_irqsave(l,f) do{(f) = 0;}while(0)
77#define spin_unlock_irqrestore(l, f) do{}while(0)
78#define mutex_init(m) do{} while(0)
79#define mutex_lock(m) do{}while(0)
80#define mutex_unlock(m) do{} while(0)
81
90
91typedef unsigned int gfp_t;
92typedef unsigned int fmode_t;
93typedef unsigned int umode_t;
94typedef int irqreturn_t;
95typedef unsigned long irq_hw_number_t;
96typedef unsigned long pgoff_t;
97typedef unsigned long kernel_ulong_t;
98
99#define IRQ_NONE 0
100#define IRQ_HANDLED 1
101#define IRQ_WAKE_THREAD 2
102
103#define __iomem
104#define __user
105#define __kernel
106#define __force
107#define __nocast
108#define __safe
109#define __chk_user_ptr(x) (void)0
110#define __chk_io_ptr(x) (void)0
111
112#define EPERM 1
113#define ENOENT 2
114#define EIO 5
115#define ENOMEM 12
116#define EBUSY 16
117#define ENODEV 19
118#define EINVAL 22
119#define ENOSPC 28
120#define ETIMEDOUT 110
121#define ENOTSUPP 524
122#define MAX_ERRNO 4095
123#define IS_ERR_VALUE(x) ((x) >= (uintptr_t)-MAX_ERRNO)
124
125#define EDEADLK 35
126#define ENAMETOOLONG 36
127#define ENOLCK 37
128#define ENOSYS 38
129#define ENOTEMPTY 39
130#define ELOOP 40
131#define EWOULDBLOCK EAGAIN
132#define ENOMSG 42
133#define EIDRM 43
134#define ENOSTR 60
135#define ENODATA 61
136#define ETIME 62
137#define ENOSR 63
138#define EREMOTE 66
139#define ENOLINK 67
140#define EPROTO 71
141#define EMULTIHOP 72
142#define EBADMSG 74
143#define EOVERFLOW 75
144#define EILSEQ 84
145#define EUSERS 87
146#define ENOTSOCK 88
147#define EDESTADDRREQ 89
148#define EMSGSIZE 90
149#define ENOPROTOOPT 92
150#define EPROTONOSUPPORT 93
151#define ESOCKTNOSUPPORT 94
152#define EOPNOTSUPP 95
153#define EAFNOSUPPORT 97
154#define EADDRINUSE 98
155#define EADDRNOTAVAIL 99
156#define ENETDOWN 100
157#define ENETUNREACH 101
158#define ENETRESET 102
159#define ECONNABORTED 103
160#define ECONNRESET 104
161#define ECONNRESET 104
162#define ENOBUFS 105
163#define EISCONN 106
164#define ENOTCONN 107
165#define ESHUTDOWN 108
166#define ETOOMANYREGS 109
167#define ETIMEDOUT 110
168#define ECONNREFUSED 111
169#define EHOSTDOWN 112
170
171#define readb(addr) (*(volatile u8*)((uint8_t*)addr))
172#define readw(addr) (*(volatile u16*)((uint8_t*)addr))
173#define readl(addr) (*(volatile u32*)((uint8_t*)addr))
174#define writeb(v, addr) (*(volatile u8*)((uint8_t*)addr) = (v))
175#define writew(v, addr) (*(volatile u16*)((uint8_t*)addr) = (v))
176#define writel(v, addr) (*(volatile u32*)((uint8_t*)addr) = (v))
177
178#define BITS_PER_LONG 64
179#define BITS_PER_BYTE 8
180
181#define BIT(n) (1UL << (n))
182#define BIT_ULL(n) (1ULL << (n))
183#define GENMASK(h, l) (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG-1-(h))))
184#define GENMASK_ULL(h,l) (((~0ULL) << (l)) & (~0ULL >> (63-(h))))
185
187
188#define NSEC_PER_USEC 1000LL
189#define NSEC_PER_MSEC 1000000LL
190#define NSEC_PER_SEC 1000000000LL
191#define USEC_PER_MSEC 1000LL
192#define USEC_PER_SEC 1000000LL
193#define MSEC_PER_SEC 1000LL
194
195#define KTIME_MAX ((ktime_t)~((uint64_t)1<<63))
196#define KTIME_MIN (~KTIME_MAX - 1)
197#define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
198
199static inline ktime_t ktime_set(long secs, unsigned long nsecs) {
200 return (ktime_t)secs * MSEC_PER_SEC + (ktime_t)nsecs;
201}
202
203static inline ktime_t ktime_add(ktime_t a, ktime_t b) {
204 return a + b;
205}
206
207static inline ktime_t ktime_sub(ktime_t a, ktime_t b) {
208 return a - b;
209}
210
211static inline ktime_t ktime_add_ns(ktime_t a, uint64_t ns) {
212 return a + (ktime_t)ns;
213}
214
215static inline ktime_t ktime_sub_ns(ktime_t a, uint64_t ns) {
216 return a - (ktime_t)ns;
217}
218
219static inline ktime_t ktime_add_us(ktime_t a, uint64_t us) {
220 return a + (ktime_t)(us * NSEC_PER_USEC);
221}
222
223static inline ktime_t ktime_add_ms(ktime_t a, uint64_t ms) {
224 return a + (ktime_t)(ms * NSEC_PER_MSEC);
225}
226
227static inline int ktime_compare(ktime_t a, ktime_t b) {
228 if (a < b) return -1;
229 if (a > b) return 1;
230 return 0;
231}
232
233static inline bool ktime_after(ktime_t a, ktime_t b) {
234 return a > b;
235}
236
237static inline bool ktime_before(ktime_t a, ktime_t b) {
238 return a < b;
239}
240
241static inline int64_t ktime_to_ns(ktime_t kt) {
242 return (int64_t)kt;
243}
244
245static inline int64_t ktime_to_us(ktime_t kt) {
246 return (int64_t)kt / NSEC_PER_USEC;
247}
248
249static inline int64_t ktime_to_ms(ktime_t kt) {
250 return (int64_t)kt / NSEC_PER_MSEC;
251}
252
253static inline int64_t ktime_to_s(ktime_t kt) {
254 return (int64_t)kt / NSEC_PER_SEC;
255}
256
257static inline ktime_t ns_to_ktime(uint64_t ns) {
258 return (ktime_t)ns;
259}
260
261static inline ktime_t us_to_ktime(uint64_t us) {
262 return (ktime_t)(us * NSEC_PER_USEC);
263}
264
265static inline ktime_t ms_to_ktime(uint64_t ms) {
266 return (ktime_t)(ms * NSEC_PER_MSEC);
267}
268
269static inline ktime_t ktime_sub_us(ktime_t a, uint64_t us) {
270 return a - (ktime_t)(us * NSEC_PER_USEC);
271}
272
273static inline ktime_t ktime_us_delta(ktime_t later, ktime_t earlier) {
274 return ktime_to_us(ktime_sub(later, earlier));
275}
276
277static inline int64_t ktime_ms_delta(ktime_t later, ktime_t earlier) {
278 return ktime_to_ms(ktime_sub(later, earlier));
279}
280
281static inline ktime_t ktime_get(void) {
282 uint64_t cnt = get_cntpct_el0();
283 uint64_t freq = get_cntfrq_el0();
284
285 return (ktime_t)(cnt / (freq / NSEC_PER_SEC));
286}
287
288static inline ktime_t ktime_get_mono_fast_ns(void) {
289 return ktime_get();
290}
291
292static inline uint64_t ktime_get_ns(void) {
293 return (uint64_t)ktime_get();
294}
295
296#if defined(_MSC_VER)
297#define WARN_ON(cond) \
298 ((cond) ? (UARTDebugOut("[WARN] %s:%d %s \r\n", __FILE__, __LINE__, #cond)))
299#elif defined(__GNUC__) && defined(__clang__)
300#define WARN_ON(cond) ({ \
301int __c = !!(cond); \
302if (__c){ \
303UARTDebugOut("[WARN] %s:%d \r\n", __FILE__, __LINE__); \
304} \
305})
306#endif
307
308#endif
309
310
311
unsigned uintptr_t
Definition stdint.h:95
AU_EXTERN AU_EXPORT uint64_t get_cntpct_el0()
AU_EXTERN AU_EXPORT uint64_t get_cntfrq_el0()
int int32_t
Definition acefiex.h:160
unsigned int uint32_t
Definition acefiex.h:163
COMPILER_DEPENDENT_INT64 int64_t
Definition acefiex.h:164
short int int16_t
Definition acefiex.h:159
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
signed char int8_t
Definition acefiex.h:158
#define NSEC_PER_SEC
Definition kernel.h:190
uintptr_t phys_addr_t
Definition kernel.h:67
int8_t __s8
Definition kernel.h:33
uint32_t __be32
Definition kernel.h:43
#define NSEC_PER_USEC
Definition kernel.h:188
#define MSEC_PER_SEC
Definition kernel.h:193
uint64_t blkcnt_t
Definition kernel.h:83
int64_t s64
Definition kernel.h:27
int32_t __s32
Definition kernel.h:35
uint32_t __u32
Definition kernel.h:31
uint64_t u64
Definition kernel.h:23
uint32_t dev_t
Definition kernel.h:87
int64_t __s64
Definition kernel.h:36
unsigned long irq_hw_number_t
Definition kernel.h:95
uint64_t __be64
Definition kernel.h:44
int64_t ktime_t
Definition kernel.h:186
uintptr_t dma_addr_t
Definition kernel.h:69
uint8_t __u8
Definition kernel.h:29
uint64_t loff_t
Definition kernel.h:84
uintptr_t resource_size_t
Definition kernel.h:68
unsigned long pgoff_t
Definition kernel.h:96
uint16_t __le16
Definition kernel.h:39
uint8_t u8
Definition kernel.h:20
uint64_t __le64
Definition kernel.h:41
uint16_t __be16
Definition kernel.h:42
int irqreturn_t
Definition kernel.h:94
unsigned int gfp_t
Definition kernel.h:91
unsigned long kernel_ulong_t
Definition kernel.h:97
int16_t __s16
Definition kernel.h:34
int8_t s8
Definition kernel.h:24
uint32_t nlink_t
Definition kernel.h:89
uint32_t gid_t
Definition kernel.h:86
int16_t s16
Definition kernel.h:25
uint16_t __u16
Definition kernel.h:30
uint64_t __u64
Definition kernel.h:32
uint16_t u16
Definition kernel.h:21
#define NSEC_PER_MSEC
Definition kernel.h:189
uint32_t __le32
Definition kernel.h:40
int spinlock_t
Definition kernel.h:71
int32_t s32
Definition kernel.h:26
uint64_t sector_t
Definition kernel.h:82
unsigned int fmode_t
Definition kernel.h:92
unsigned int umode_t
Definition kernel.h:93
uint32_t ino_t
Definition kernel.h:88
int mutex
Definition kernel.h:72
uint32_t uid_t
Definition kernel.h:85
uint8_t __le8
Definition kernel.h:38
uint32_t u32
Definition kernel.h:22
uintptr_t io_addr_t
Definition kernel.h:70