Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) #include <stdio.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3) #include <stddef.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4) #include <signal.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #include <poll.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) #include <sys/mman.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) #include <sys/user.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #define __FRAME_OFFSETS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #include <linux/ptrace.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <asm/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define DEFINE(sym, val) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 	asm volatile("\n->" #sym " %0 " #val : : "i" (val))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define DEFINE_LONGS(sym, val) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) void foo(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #ifdef __i386__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_fpregs_struct));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	DEFINE_LONGS(HOST_FPX_SIZE, sizeof(struct user_fpxregs_struct));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	DEFINE(HOST_IP, EIP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	DEFINE(HOST_SP, UESP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	DEFINE(HOST_EFLAGS, EFL);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	DEFINE(HOST_AX, EAX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	DEFINE(HOST_BX, EBX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	DEFINE(HOST_CX, ECX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	DEFINE(HOST_DX, EDX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	DEFINE(HOST_SI, ESI);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	DEFINE(HOST_DI, EDI);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	DEFINE(HOST_BP, EBP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	DEFINE(HOST_CS, CS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	DEFINE(HOST_SS, SS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	DEFINE(HOST_DS, DS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	DEFINE(HOST_FS, FS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	DEFINE(HOST_ES, ES);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	DEFINE(HOST_GS, GS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	DEFINE(HOST_ORIG_AX, ORIG_EAX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #ifdef FP_XSTATE_MAGIC1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	DEFINE_LONGS(HOST_FP_SIZE, 2696);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	DEFINE(HOST_FP_SIZE, sizeof(struct _fpstate) / sizeof(unsigned long));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	DEFINE_LONGS(HOST_BX, RBX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 	DEFINE_LONGS(HOST_CX, RCX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	DEFINE_LONGS(HOST_DI, RDI);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 	DEFINE_LONGS(HOST_SI, RSI);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 	DEFINE_LONGS(HOST_DX, RDX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	DEFINE_LONGS(HOST_BP, RBP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	DEFINE_LONGS(HOST_AX, RAX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 	DEFINE_LONGS(HOST_R8, R8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	DEFINE_LONGS(HOST_R9, R9);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 	DEFINE_LONGS(HOST_R10, R10);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 	DEFINE_LONGS(HOST_R11, R11);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 	DEFINE_LONGS(HOST_R12, R12);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 	DEFINE_LONGS(HOST_R13, R13);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 	DEFINE_LONGS(HOST_R14, R14);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 	DEFINE_LONGS(HOST_R15, R15);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 	DEFINE_LONGS(HOST_ORIG_AX, ORIG_RAX);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 	DEFINE_LONGS(HOST_CS, CS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 	DEFINE_LONGS(HOST_SS, SS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 	DEFINE_LONGS(HOST_EFLAGS, EFLAGS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #if 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) 	DEFINE_LONGS(HOST_FS, FS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 	DEFINE_LONGS(HOST_GS, GS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) 	DEFINE_LONGS(HOST_DS, DS);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 	DEFINE_LONGS(HOST_ES, ES);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) 	DEFINE_LONGS(HOST_IP, RIP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) 	DEFINE_LONGS(HOST_SP, RSP);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) 	DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) 	DEFINE(UM_POLLIN, POLLIN);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) 	DEFINE(UM_POLLPRI, POLLPRI);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) 	DEFINE(UM_POLLOUT, POLLOUT);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) 	DEFINE(UM_PROT_READ, PROT_READ);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) 	DEFINE(UM_PROT_WRITE, PROT_WRITE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) 	DEFINE(UM_PROT_EXEC, PROT_EXEC);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) }