1
2 #ifndef _LINUX_PRCTL_H
3 #define _LINUX_PRCTL_H
4
5 #include <linux/types.h>
6
7
8
9 #define PR_SET_PDEATHSIG 1
10 #define PR_GET_PDEATHSIG 2
11
12
13 #define PR_GET_DUMPABLE 3
14 #define PR_SET_DUMPABLE 4
15
16
17 #define PR_GET_UNALIGN 5
18 #define PR_SET_UNALIGN 6
19 # define PR_UNALIGN_NOPRINT 1
20 # define PR_UNALIGN_SIGBUS 2
21
22
23
24 #define PR_GET_KEEPCAPS 7
25 #define PR_SET_KEEPCAPS 8
26
27
28 #define PR_GET_FPEMU 9
29 #define PR_SET_FPEMU 10
30 # define PR_FPEMU_NOPRINT 1
31 # define PR_FPEMU_SIGFPE 2
32
33
34 #define PR_GET_FPEXC 11
35 #define PR_SET_FPEXC 12
36 # define PR_FP_EXC_SW_ENABLE 0x80
37 # define PR_FP_EXC_DIV 0x010000
38 # define PR_FP_EXC_OVF 0x020000
39 # define PR_FP_EXC_UND 0x040000
40 # define PR_FP_EXC_RES 0x080000
41 # define PR_FP_EXC_INV 0x100000
42 # define PR_FP_EXC_DISABLED 0
43 # define PR_FP_EXC_NONRECOV 1
44 # define PR_FP_EXC_ASYNC 2
45 # define PR_FP_EXC_PRECISE 3
46
47
48
49 #define PR_GET_TIMING 13
50 #define PR_SET_TIMING 14
51 # define PR_TIMING_STATISTICAL 0
52
53 # define PR_TIMING_TIMESTAMP 1
54
55
56 #define PR_SET_NAME 15
57 #define PR_GET_NAME 16
58
59
60 #define PR_GET_ENDIAN 19
61 #define PR_SET_ENDIAN 20
62 # define PR_ENDIAN_BIG 0
63 # define PR_ENDIAN_LITTLE 1
64 # define PR_ENDIAN_PPC_LITTLE 2
65
66
67 #define PR_GET_SECCOMP 21
68 #define PR_SET_SECCOMP 22
69
70
71 #define PR_CAPBSET_READ 23
72 #define PR_CAPBSET_DROP 24
73
74
75 #define PR_GET_TSC 25
76 #define PR_SET_TSC 26
77 # define PR_TSC_ENABLE 1
78 # define PR_TSC_SIGSEGV 2
79
80
81 #define PR_GET_SECUREBITS 27
82 #define PR_SET_SECUREBITS 28
83
84
85
86
87
88 #define PR_SET_TIMERSLACK 29
89 #define PR_GET_TIMERSLACK 30
90
91 #define PR_TASK_PERF_EVENTS_DISABLE 31
92 #define PR_TASK_PERF_EVENTS_ENABLE 32
93
94
95
96
97
98 #define PR_MCE_KILL 33
99 # define PR_MCE_KILL_CLEAR 0
100 # define PR_MCE_KILL_SET 1
101
102 # define PR_MCE_KILL_LATE 0
103 # define PR_MCE_KILL_EARLY 1
104 # define PR_MCE_KILL_DEFAULT 2
105
106 #define PR_MCE_KILL_GET 34
107
108
109
110
111 #define PR_SET_MM 35
112 # define PR_SET_MM_START_CODE 1
113 # define PR_SET_MM_END_CODE 2
114 # define PR_SET_MM_START_DATA 3
115 # define PR_SET_MM_END_DATA 4
116 # define PR_SET_MM_START_STACK 5
117 # define PR_SET_MM_START_BRK 6
118 # define PR_SET_MM_BRK 7
119 # define PR_SET_MM_ARG_START 8
120 # define PR_SET_MM_ARG_END 9
121 # define PR_SET_MM_ENV_START 10
122 # define PR_SET_MM_ENV_END 11
123 # define PR_SET_MM_AUXV 12
124 # define PR_SET_MM_EXE_FILE 13
125 # define PR_SET_MM_MAP 14
126 # define PR_SET_MM_MAP_SIZE 15
127
128
129
130
131
132
133
134 struct prctl_mm_map {
135 __u64 start_code;
136 __u64 end_code;
137 __u64 start_data;
138 __u64 end_data;
139 __u64 start_brk;
140 __u64 brk;
141 __u64 start_stack;
142 __u64 arg_start;
143 __u64 arg_end;
144 __u64 env_start;
145 __u64 env_end;
146 __u64 *auxv;
147 __u32 auxv_size;
148 __u32 exe_fd;
149 };
150
151
152
153
154
155 #define PR_SET_PTRACER 0x59616d61
156 # define PR_SET_PTRACER_ANY ((unsigned long)-1)
157
158 #define PR_SET_CHILD_SUBREAPER 36
159 #define PR_GET_CHILD_SUBREAPER 37
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175 #define PR_SET_NO_NEW_PRIVS 38
176 #define PR_GET_NO_NEW_PRIVS 39
177
178 #define PR_GET_TID_ADDRESS 40
179
180 #define PR_SET_THP_DISABLE 41
181 #define PR_GET_THP_DISABLE 42
182
183
184
185
186 #define PR_MPX_ENABLE_MANAGEMENT 43
187 #define PR_MPX_DISABLE_MANAGEMENT 44
188
189 #define PR_SET_FP_MODE 45
190 #define PR_GET_FP_MODE 46
191 # define PR_FP_MODE_FR (1 << 0)
192 # define PR_FP_MODE_FRE (1 << 1)
193
194
195 #define PR_CAP_AMBIENT 47
196 # define PR_CAP_AMBIENT_IS_SET 1
197 # define PR_CAP_AMBIENT_RAISE 2
198 # define PR_CAP_AMBIENT_LOWER 3
199 # define PR_CAP_AMBIENT_CLEAR_ALL 4
200
201
202
203 #define PR_SVE_SET_VL 50
204 # define PR_SVE_SET_VL_ONEXEC (1 << 18)
205 #define PR_SVE_GET_VL 51
206
207 # define PR_SVE_VL_LEN_MASK 0xffff
208 # define PR_SVE_VL_INHERIT (1 << 17)
209
210
211 #define PR_GET_SPECULATION_CTRL 52
212 #define PR_SET_SPECULATION_CTRL 53
213
214 # define PR_SPEC_STORE_BYPASS 0
215 # define PR_SPEC_INDIRECT_BRANCH 1
216
217 # define PR_SPEC_NOT_AFFECTED 0
218 # define PR_SPEC_PRCTL (1UL << 0)
219 # define PR_SPEC_ENABLE (1UL << 1)
220 # define PR_SPEC_DISABLE (1UL << 2)
221 # define PR_SPEC_FORCE_DISABLE (1UL << 3)
222 # define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
223
224
225 #define PR_PAC_RESET_KEYS 54
226 # define PR_PAC_APIAKEY (1UL << 0)
227 # define PR_PAC_APIBKEY (1UL << 1)
228 # define PR_PAC_APDAKEY (1UL << 2)
229 # define PR_PAC_APDBKEY (1UL << 3)
230 # define PR_PAC_APGAKEY (1UL << 4)
231
232
233 #define PR_SET_TAGGED_ADDR_CTRL 55
234 #define PR_GET_TAGGED_ADDR_CTRL 56
235 # define PR_TAGGED_ADDR_ENABLE (1UL << 0)
236
237 #endif