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