4#ifndef __LINUX_KERNEL_H__
5#define __LINUX_KERNEL_H__
134#define udelay(us) AA64SleepUS(us)
135#define mdelay(ms) AA64SleepMS(ms)
136#define msleep(ms) mdelay(ms)
137#define usleep(us) AA64SleepUS(us)
159#define __GFP_ACCOUNT 0
168#define __GFP_BITS_SHIFT 26
170#define container_of(ptr, type, member) \
171 ((type*)((char*)(ptr)- offsetof(type,member)))
174#if defined(__GNUC__) || defined(__clang__)
175#define offsetof(type, member) __builtin_offsetof(type, member)
177#define offsetof(type, member) \
178 ((size_t)&((type*)0)->member)
223#define might_sleep() do {} while (0)
225#define spin_lock_init(l) do{} while(0)
226#define spin_lock_irqsave(l,f) do{(f) = 0;}while(0)
227#define spin_unlock_irqrestore(l, f) do{}while(0)
228#define mutex_init(m) do{} while(0)
229#define mutex_lock(m) do{}while(0)
230#define mutex_unlock(m) do{} while(0)
265#define __aligned(x) __attribute__((aligned(x)))
267#define __chk_user_ptr(x) (void)0
268#define __chk_io_ptr(x) (void)0
289#define EPROBE_DEFER 517
302#define ERESTARTSYS 512
304#define MAX_ERRNO 4095
305#define IS_ERR_VALUE(x) ((x) >= (uintptr_t)-MAX_ERRNO)
308#define ENAMETOOLONG 36
314#define EWOULDBLOCK EAGAIN
330#define EDESTADDRREQ 89
332#define ENOPROTOOPT 92
333#define EPROTONOSUPPORT 93
334#define ESOCKTNOSUPPORT 94
336#define EAFNOSUPPORT 97
338#define EADDRNOTAVAIL 99
340#define ENETUNREACH 101
342#define ECONNABORTED 103
343#define ECONNRESET 104
348#define ETOOMANYREGS 109
349#define ECONNREFUSED 111
352#define readb(addr) (*(volatile u8*)((uint8_t*)addr))
353#define readw(addr) (*(volatile u16*)((uint8_t*)addr))
354#define readl(addr) (*(volatile u32*)((uint8_t*)addr))
355#define writeb(v, addr) (*(volatile u8*)((uint8_t*)addr) = (v))
356#define writew(v, addr) (*(volatile u16*)((uint8_t*)addr) = (v))
357#define writel(v, addr) (*(volatile u32*)((uint8_t*)addr) = (v))
359#define BITS_PER_BYTE 8
397#define BITS_PER_LONG 32
399#define BIT(n) (1UL << (n))
400#define BIT_ULL(n) (1ULL << (n))
401#define GENMASK(h, l) (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG-1-(h))))
402#define GENMASK_ULL(h,l) (((~0ULL) << (l)) & (~0ULL >> (63-(h))))
406#define NSEC_PER_USEC 1000LL
407#define NSEC_PER_MSEC 1000000LL
408#define NSEC_PER_SEC 1000000000LL
409#define USEC_PER_MSEC 1000LL
410#define USEC_PER_SEC 1000000LL
411#define MSEC_PER_SEC 1000LL
413#define KTIME_MAX ((ktime_t)~((uint64_t)1<<63))
414#define KTIME_MIN (~KTIME_MAX - 1)
415#define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
417static inline ktime_t ktime_set(
long secs,
unsigned long nsecs) {
446 if (
a <
b)
return -1;
492 return ktime_to_us(ktime_sub(later, earlier));
496 return ktime_to_ms(ktime_sub(later, earlier));
499#define TK_OFFS_BOOT 0
501static inline ktime_t ktime_mono_to_any(
ktime_t t,
int offs) { (void)offs;
return t; }
503static inline ktime_t ktime_get(
void) {
510static inline ktime_t ktime_get_mono_fast_ns(
void) {
536static inline uint64_t ktime_get_ns(
void) {
552#define WARN_ON(cond) \
553 ((cond) ? (UARTDebugOut("[WARN] %s:%d %s \r\n", \
554 __FILE__, __LINE__, #cond), 1) : 0)
555#elif defined(__GNUC__) && defined(__clang__)
556#define WARN_ON(cond) ({ \
559UARTDebugOut("[WARN] %s:%d \r\n", __FILE__, __LINE__); \
568#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
571#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
573#define ALIGN(x, a) __ALIGN_KERNEL((x), (a))
574#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
575#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
576#define MIN(a, b) ((a) < (b) ? (a) : (b))
577#define MAX(a, b) ((a) > (b) ? (a) : (b))
578#define clamp(val, lo, hi) ((val) < (lo) ? (lo) : ((val) > (hi) ? (hi) : (val)))
579#define BUILD_BUG_ON(cond) ((void)sizeof(char[1 - 2 * !!(cond)]))
580#define upper_32_bits(n) ((uint32_t)((n) >> 32))
581#define lower_32_bits(n) ((uint32_t)((n) & 0xFFFFFFFF))
605#define READ_ONCE(x) __atomic_load_n(&(x), __ATOMIC_RELAXED)
608#define WRITE_ONCE(x, val) __atomic_store_n(&(x), (val), __ATOMIC_RELAXED)
610#ifndef smp_load_acquire
611#define smp_load_acquire(p) __atomic_load_n((p), __ATOMIC_ACQUIRE)
613#ifndef smp_store_release
614#define smp_store_release(p, v) __atomic_store_n((p), (v), __ATOMIC_RELEASE)
617#define smp_mb() __atomic_thread_fence(__ATOMIC_SEQ_CST)
620#define smp_rmb() __atomic_thread_fence(__ATOMIC_ACQUIRE)
623#define smp_wmb() __atomic_thread_fence(__ATOMIC_RELEASE)
637#define WARN(cond, fmt, ...) \
639 int __wret = !!(cond); \
641 UARTDebugOut("[WARN] " fmt " (%s:%d)\r\n", \
642 ##__VA_ARGS__, __FILE__, __LINE__); \
648#define WARN_ON_ONCE(cond) \
650 static int __warned_once; \
651 int __wret = !!(cond); \
652 if (__wret && !__warned_once) { \
654 UARTDebugOut("[WARN] %s:%d\r\n", \
655 __FILE__, __LINE__); \
667#ifndef __randomize_layout
668#define __randomize_layout
683#define xchg(ptr, v) __atomic_exchange_n((ptr), (v), __ATOMIC_SEQ_CST)
728 panic("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__)
730#define BUG_ON(condition) do { if (condition) { BUG(); } } while (0)
753static inline long sized_strscpy(
char* dst,
const char* src,
size_t count)
760 for (i = 0; i + 1 < count && src[i]; i++)
814#define __strscpy_2(dst, src, ...) sized_strscpy(dst, src, sizeof(dst))
815#define __strscpy_3(dst, src, size) sized_strscpy(dst, src, size)
816#define __strscpy_sel(_1, N, ...) N
817#define __strscpy_args(...) __strscpy_sel(__VA_OPT__(__VA_ARGS__, __strscpy_3) , __strscpy_2)
818#define strscpy(dst, src, ...) __strscpy_args(__VA_ARGS__)(dst, src, __VA_ARGS__)
unsigned int uintptr_t
Definition stdint.h:94
XETime t
Definition main.cpp:53
size_t a
Definition main.cpp:156
size_t b
Definition main.cpp:156
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:408
uintptr_t phys_addr_t
Definition kernel.h:40
int8_t __s8
Definition kernel.h:27
uint32_t __be32
Definition kernel.h:37
#define NSEC_PER_USEC
Definition kernel.h:406
uint64_t blkcnt_t
Definition kernel.h:48
int64_t s64
Definition kernel.h:21
int32_t __s32
Definition kernel.h:29
uint32_t __u32
Definition kernel.h:25
uint64_t u64
Definition kernel.h:17
uint32_t dev_t
Definition kernel.h:52
int64_t __s64
Definition kernel.h:30
unsigned long irq_hw_number_t
Definition kernel.h:73
uint64_t __be64
Definition kernel.h:38
int64_t ktime_t
Definition kernel.h:404
uintptr_t dma_addr_t
Definition kernel.h:42
uint8_t __u8
Definition kernel.h:23
uint64_t loff_t
Definition kernel.h:49
uintptr_t resource_size_t
Definition kernel.h:41
unsigned long pgoff_t
Definition kernel.h:74
uint16_t __le16
Definition kernel.h:33
uint8_t u8
Definition kernel.h:14
uint64_t __le64
Definition kernel.h:35
uint16_t __be16
Definition kernel.h:36
unsigned int gfp_t
Definition kernel.h:56
unsigned long kernel_ulong_t
Definition kernel.h:75
int16_t __s16
Definition kernel.h:28
int8_t s8
Definition kernel.h:18
uint32_t nlink_t
Definition kernel.h:54
uint32_t gid_t
Definition kernel.h:51
int16_t s16
Definition kernel.h:19
#define E2BIG
Definition kernel.h:288
uint16_t __u16
Definition kernel.h:24
uint64_t __u64
Definition kernel.h:26
uint16_t u16
Definition kernel.h:15
#define NSEC_PER_MSEC
Definition kernel.h:407
uint32_t __le32
Definition kernel.h:34
int spinlock_t
Definition kernel.h:44
int32_t s32
Definition kernel.h:20
uint64_t sector_t
Definition kernel.h:47
unsigned int fmode_t
Definition kernel.h:57
unsigned int umode_t
Definition kernel.h:58
uint32_t ino_t
Definition kernel.h:53
int mutex
Definition kernel.h:45
uint32_t uid_t
Definition kernel.h:50
uint8_t __le8
Definition kernel.h:32
uint32_t u32
Definition kernel.h:16
uintptr_t io_addr_t
Definition kernel.h:43
long long tv_nsec
Definition kernel.h:526
int64_t tv_sec
Definition kernel.h:525