1*c9945492SAndroid Build Coastguard Worker #ifndef _SYS_PTRACE_H 2*c9945492SAndroid Build Coastguard Worker #define _SYS_PTRACE_H 3*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 4*c9945492SAndroid Build Coastguard Worker extern "C" { 5*c9945492SAndroid Build Coastguard Worker #endif 6*c9945492SAndroid Build Coastguard Worker 7*c9945492SAndroid Build Coastguard Worker #include <stdint.h> 8*c9945492SAndroid Build Coastguard Worker 9*c9945492SAndroid Build Coastguard Worker #define PTRACE_TRACEME 0 10*c9945492SAndroid Build Coastguard Worker #define PT_TRACE_ME PTRACE_TRACEME 11*c9945492SAndroid Build Coastguard Worker 12*c9945492SAndroid Build Coastguard Worker #define PTRACE_PEEKTEXT 1 13*c9945492SAndroid Build Coastguard Worker #define PTRACE_PEEKDATA 2 14*c9945492SAndroid Build Coastguard Worker #define PTRACE_PEEKUSER 3 15*c9945492SAndroid Build Coastguard Worker #define PTRACE_POKETEXT 4 16*c9945492SAndroid Build Coastguard Worker #define PTRACE_POKEDATA 5 17*c9945492SAndroid Build Coastguard Worker #define PTRACE_POKEUSER 6 18*c9945492SAndroid Build Coastguard Worker #define PTRACE_CONT 7 19*c9945492SAndroid Build Coastguard Worker #define PTRACE_KILL 8 20*c9945492SAndroid Build Coastguard Worker #define PTRACE_SINGLESTEP 9 21*c9945492SAndroid Build Coastguard Worker #define PTRACE_GETREGS 12 22*c9945492SAndroid Build Coastguard Worker #define PTRACE_SETREGS 13 23*c9945492SAndroid Build Coastguard Worker #define PTRACE_GETFPREGS 14 24*c9945492SAndroid Build Coastguard Worker #define PTRACE_SETFPREGS 15 25*c9945492SAndroid Build Coastguard Worker #define PTRACE_ATTACH 16 26*c9945492SAndroid Build Coastguard Worker #define PTRACE_DETACH 17 27*c9945492SAndroid Build Coastguard Worker #define PTRACE_GETFPXREGS 18 28*c9945492SAndroid Build Coastguard Worker #define PTRACE_SETFPXREGS 19 29*c9945492SAndroid Build Coastguard Worker #define PTRACE_SYSCALL 24 30*c9945492SAndroid Build Coastguard Worker #define PTRACE_SETOPTIONS 0x4200 31*c9945492SAndroid Build Coastguard Worker #define PTRACE_GETEVENTMSG 0x4201 32*c9945492SAndroid Build Coastguard Worker #define PTRACE_GETSIGINFO 0x4202 33*c9945492SAndroid Build Coastguard Worker #define PTRACE_SETSIGINFO 0x4203 34*c9945492SAndroid Build Coastguard Worker #define PTRACE_GETREGSET 0x4204 35*c9945492SAndroid Build Coastguard Worker #define PTRACE_SETREGSET 0x4205 36*c9945492SAndroid Build Coastguard Worker #define PTRACE_SEIZE 0x4206 37*c9945492SAndroid Build Coastguard Worker #define PTRACE_INTERRUPT 0x4207 38*c9945492SAndroid Build Coastguard Worker #define PTRACE_LISTEN 0x4208 39*c9945492SAndroid Build Coastguard Worker #define PTRACE_PEEKSIGINFO 0x4209 40*c9945492SAndroid Build Coastguard Worker #define PTRACE_GETSIGMASK 0x420a 41*c9945492SAndroid Build Coastguard Worker #define PTRACE_SETSIGMASK 0x420b 42*c9945492SAndroid Build Coastguard Worker #define PTRACE_SECCOMP_GET_FILTER 0x420c 43*c9945492SAndroid Build Coastguard Worker #define PTRACE_SECCOMP_GET_METADATA 0x420d 44*c9945492SAndroid Build Coastguard Worker #define PTRACE_GET_SYSCALL_INFO 0x420e 45*c9945492SAndroid Build Coastguard Worker #define PTRACE_GET_RSEQ_CONFIGURATION 0x420f 46*c9945492SAndroid Build Coastguard Worker 47*c9945492SAndroid Build Coastguard Worker #define PT_READ_I PTRACE_PEEKTEXT 48*c9945492SAndroid Build Coastguard Worker #define PT_READ_D PTRACE_PEEKDATA 49*c9945492SAndroid Build Coastguard Worker #define PT_READ_U PTRACE_PEEKUSER 50*c9945492SAndroid Build Coastguard Worker #define PT_WRITE_I PTRACE_POKETEXT 51*c9945492SAndroid Build Coastguard Worker #define PT_WRITE_D PTRACE_POKEDATA 52*c9945492SAndroid Build Coastguard Worker #define PT_WRITE_U PTRACE_POKEUSER 53*c9945492SAndroid Build Coastguard Worker #define PT_CONTINUE PTRACE_CONT 54*c9945492SAndroid Build Coastguard Worker #define PT_KILL PTRACE_KILL 55*c9945492SAndroid Build Coastguard Worker #define PT_STEP PTRACE_SINGLESTEP 56*c9945492SAndroid Build Coastguard Worker #define PT_GETREGS PTRACE_GETREGS 57*c9945492SAndroid Build Coastguard Worker #define PT_SETREGS PTRACE_SETREGS 58*c9945492SAndroid Build Coastguard Worker #define PT_GETFPREGS PTRACE_GETFPREGS 59*c9945492SAndroid Build Coastguard Worker #define PT_SETFPREGS PTRACE_SETFPREGS 60*c9945492SAndroid Build Coastguard Worker #define PT_ATTACH PTRACE_ATTACH 61*c9945492SAndroid Build Coastguard Worker #define PT_DETACH PTRACE_DETACH 62*c9945492SAndroid Build Coastguard Worker #define PT_GETFPXREGS PTRACE_GETFPXREGS 63*c9945492SAndroid Build Coastguard Worker #define PT_SETFPXREGS PTRACE_SETFPXREGS 64*c9945492SAndroid Build Coastguard Worker #define PT_SYSCALL PTRACE_SYSCALL 65*c9945492SAndroid Build Coastguard Worker #define PT_SETOPTIONS PTRACE_SETOPTIONS 66*c9945492SAndroid Build Coastguard Worker #define PT_GETEVENTMSG PTRACE_GETEVENTMSG 67*c9945492SAndroid Build Coastguard Worker #define PT_GETSIGINFO PTRACE_GETSIGINFO 68*c9945492SAndroid Build Coastguard Worker #define PT_SETSIGINFO PTRACE_SETSIGINFO 69*c9945492SAndroid Build Coastguard Worker 70*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_TRACESYSGOOD 0x00000001 71*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_TRACEFORK 0x00000002 72*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_TRACEVFORK 0x00000004 73*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_TRACECLONE 0x00000008 74*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_TRACEEXEC 0x00000010 75*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_TRACEVFORKDONE 0x00000020 76*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_TRACEEXIT 0x00000040 77*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_TRACESECCOMP 0x00000080 78*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_EXITKILL 0x00100000 79*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_SUSPEND_SECCOMP 0x00200000 80*c9945492SAndroid Build Coastguard Worker #define PTRACE_O_MASK 0x003000ff 81*c9945492SAndroid Build Coastguard Worker 82*c9945492SAndroid Build Coastguard Worker #define PTRACE_EVENT_FORK 1 83*c9945492SAndroid Build Coastguard Worker #define PTRACE_EVENT_VFORK 2 84*c9945492SAndroid Build Coastguard Worker #define PTRACE_EVENT_CLONE 3 85*c9945492SAndroid Build Coastguard Worker #define PTRACE_EVENT_EXEC 4 86*c9945492SAndroid Build Coastguard Worker #define PTRACE_EVENT_VFORK_DONE 5 87*c9945492SAndroid Build Coastguard Worker #define PTRACE_EVENT_EXIT 6 88*c9945492SAndroid Build Coastguard Worker #define PTRACE_EVENT_SECCOMP 7 89*c9945492SAndroid Build Coastguard Worker #define PTRACE_EVENT_STOP 128 90*c9945492SAndroid Build Coastguard Worker 91*c9945492SAndroid Build Coastguard Worker #define PTRACE_PEEKSIGINFO_SHARED 1 92*c9945492SAndroid Build Coastguard Worker 93*c9945492SAndroid Build Coastguard Worker #define PTRACE_SYSCALL_INFO_NONE 0 94*c9945492SAndroid Build Coastguard Worker #define PTRACE_SYSCALL_INFO_ENTRY 1 95*c9945492SAndroid Build Coastguard Worker #define PTRACE_SYSCALL_INFO_EXIT 2 96*c9945492SAndroid Build Coastguard Worker #define PTRACE_SYSCALL_INFO_SECCOMP 3 97*c9945492SAndroid Build Coastguard Worker 98*c9945492SAndroid Build Coastguard Worker #include <bits/ptrace.h> 99*c9945492SAndroid Build Coastguard Worker 100*c9945492SAndroid Build Coastguard Worker struct __ptrace_peeksiginfo_args { 101*c9945492SAndroid Build Coastguard Worker uint64_t off; 102*c9945492SAndroid Build Coastguard Worker uint32_t flags; 103*c9945492SAndroid Build Coastguard Worker int32_t nr; 104*c9945492SAndroid Build Coastguard Worker }; 105*c9945492SAndroid Build Coastguard Worker 106*c9945492SAndroid Build Coastguard Worker struct __ptrace_seccomp_metadata { 107*c9945492SAndroid Build Coastguard Worker uint64_t filter_off; 108*c9945492SAndroid Build Coastguard Worker uint64_t flags; 109*c9945492SAndroid Build Coastguard Worker }; 110*c9945492SAndroid Build Coastguard Worker 111*c9945492SAndroid Build Coastguard Worker struct __ptrace_syscall_info { 112*c9945492SAndroid Build Coastguard Worker uint8_t op; 113*c9945492SAndroid Build Coastguard Worker uint8_t __pad[3]; 114*c9945492SAndroid Build Coastguard Worker uint32_t arch; 115*c9945492SAndroid Build Coastguard Worker uint64_t instruction_pointer; 116*c9945492SAndroid Build Coastguard Worker uint64_t stack_pointer; 117*c9945492SAndroid Build Coastguard Worker union { 118*c9945492SAndroid Build Coastguard Worker struct { 119*c9945492SAndroid Build Coastguard Worker uint64_t nr; 120*c9945492SAndroid Build Coastguard Worker uint64_t args[6]; 121*c9945492SAndroid Build Coastguard Worker } entry; 122*c9945492SAndroid Build Coastguard Worker struct { 123*c9945492SAndroid Build Coastguard Worker int64_t rval; 124*c9945492SAndroid Build Coastguard Worker uint8_t is_error; 125*c9945492SAndroid Build Coastguard Worker } exit; 126*c9945492SAndroid Build Coastguard Worker struct { 127*c9945492SAndroid Build Coastguard Worker uint64_t nr; 128*c9945492SAndroid Build Coastguard Worker uint64_t args[6]; 129*c9945492SAndroid Build Coastguard Worker uint32_t ret_data; 130*c9945492SAndroid Build Coastguard Worker } seccomp; 131*c9945492SAndroid Build Coastguard Worker }; 132*c9945492SAndroid Build Coastguard Worker }; 133*c9945492SAndroid Build Coastguard Worker 134*c9945492SAndroid Build Coastguard Worker struct __ptrace_rseq_configuration { 135*c9945492SAndroid Build Coastguard Worker uint64_t rseq_abi_pointer; 136*c9945492SAndroid Build Coastguard Worker uint32_t rseq_abi_size; 137*c9945492SAndroid Build Coastguard Worker uint32_t signature; 138*c9945492SAndroid Build Coastguard Worker uint32_t flags; 139*c9945492SAndroid Build Coastguard Worker uint32_t pad; 140*c9945492SAndroid Build Coastguard Worker }; 141*c9945492SAndroid Build Coastguard Worker 142*c9945492SAndroid Build Coastguard Worker long ptrace(int, ...); 143*c9945492SAndroid Build Coastguard Worker 144*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus 145*c9945492SAndroid Build Coastguard Worker } 146*c9945492SAndroid Build Coastguard Worker #endif 147*c9945492SAndroid Build Coastguard Worker #endif 148