1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
# Copyright 2018 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
include <linux/errno.h>
include <linux/sched/coredump.h>
include <uapi/linux/prctl.h>
include <uapi/linux/seccomp.h>
include <uapi/linux/capability.h>
include <uapi/linux/securebits.h>
include <asm/prctl.h>
prctl$PR_SET_PDEATHSIG(option const[PR_SET_PDEATHSIG], arg signalno)
prctl$PR_GET_PDEATHSIG(option const[PR_GET_PDEATHSIG], arg ptr[out, int32])
prctl$PR_GET_DUMPABLE(option const[PR_GET_DUMPABLE])
prctl$PR_SET_DUMPABLE(option const[PR_SET_DUMPABLE], arg flags[prctl_dump_mode])
prctl_dump_mode = SUID_DUMP_USER, SUID_DUMP_ROOT
prctl$PR_GET_UNALIGN(option const[PR_GET_UNALIGN], arg ptr[out, int32])
prctl$PR_SET_UNALIGN(option const[PR_SET_UNALIGN], arg flags[prctl_align_mode])
prctl_align_mode = PR_UNALIGN_NOPRINT, PR_UNALIGN_SIGBUS
prctl$PR_GET_KEEPCAPS(option const[PR_GET_KEEPCAPS])
prctl$PR_SET_KEEPCAPS(option const[PR_SET_KEEPCAPS], arg boolptr)
prctl$PR_GET_FPEMU(option const[PR_GET_FPEMU], arg ptr[out, int32])
prctl$PR_SET_FPEMU(option const[PR_SET_FPEMU], arg flags[prctl_fpemu_mode])
prctl_fpemu_mode = PR_FPEMU_NOPRINT, PR_FPEMU_SIGFPE
prctl$PR_GET_FPEXC(option const[PR_GET_FPEXC], arg ptr[out, int32])
prctl$PR_SET_FPEXC(option const[PR_SET_FPEXC], arg flags[prctl_fpexc_mode])
prctl_fpexc_mode = PR_FP_EXC_SW_ENABLE, PR_FP_EXC_DIV, PR_FP_EXC_OVF, PR_FP_EXC_UND, PR_FP_EXC_RES, PR_FP_EXC_INV, PR_FP_EXC_DISABLED, PR_FP_EXC_NONRECOV, PR_FP_EXC_ASYNC, PR_FP_EXC_PRECISE
# These are not implemented.
_ = PR_GET_TIMING, PR_SET_TIMING
prctl$PR_SET_NAME(option const[PR_SET_NAME], name ptr[in, string])
prctl$PR_GET_NAME(option const[PR_GET_NAME], name ptr[out, array[int8]])
prctl$PR_GET_ENDIAN(option const[PR_GET_ENDIAN], arg ptr[out, int32])
prctl$PR_SET_ENDIAN(option const[PR_SET_ENDIAN], arg flags[prctl_endian_mode])
prctl_endian_mode = PR_ENDIAN_BIG, PR_ENDIAN_LITTLE, PR_ENDIAN_PPC_LITTLE
prctl$PR_GET_SECCOMP(option const[PR_GET_SECCOMP])
prctl$PR_SET_SECCOMP(option const[PR_SET_SECCOMP], mode flags[prctl_seccomp_mode], prog ptr[in, sock_fprog])
prctl_seccomp_mode = SECCOMP_MODE_DISABLED, SECCOMP_MODE_STRICT, SECCOMP_MODE_FILTER
prctl$PR_CAPBSET_READ(option const[PR_CAPBSET_READ], arg int32[0:CAP_LAST_CAP])
prctl$PR_CAPBSET_DROP(option const[PR_CAPBSET_DROP], arg int32[0:CAP_LAST_CAP])
prctl$PR_GET_TSC(option const[PR_GET_TSC], arg ptr[out, int32])
prctl$PR_SET_TSC(option const[PR_SET_TSC], arg flags[prctl_tsc_mode])
prctl_tsc_mode = PR_TSC_ENABLE, PR_TSC_SIGSEGV
prctl$PR_GET_SECUREBITS(option const[PR_GET_SECUREBITS])
prctl$PR_SET_SECUREBITS(option const[PR_SET_SECUREBITS], arg flags[prctl_securebits])
prctl_securebits = SECBIT_NOROOT, SECBIT_NOROOT_LOCKED, SECBIT_NO_SETUID_FIXUP, SECBIT_NO_SETUID_FIXUP_LOCKED, SECBIT_KEEP_CAPS, SECBIT_KEEP_CAPS_LOCKED
prctl$PR_SET_TIMERSLACK(option const[PR_SET_TIMERSLACK], arg intptr)
prctl$PR_GET_TIMERSLACK(option const[PR_GET_TIMERSLACK])
prctl$PR_TASK_PERF_EVENTS_DISABLE(option const[PR_TASK_PERF_EVENTS_DISABLE])
prctl$PR_TASK_PERF_EVENTS_ENABLE(option const[PR_TASK_PERF_EVENTS_ENABLE])
prctl$PR_MCE_KILL(option const[PR_MCE_KILL], arg2 flags[prctl_mce_kill_mode], arg3 flags[prctl_mce_kill_submode])
prctl$PR_MCE_KILL_GET(option const[PR_MCE_KILL_GET])
prctl_mce_kill_mode = PR_MCE_KILL_CLEAR, PR_MCE_KILL_SET
prctl_mce_kill_submode = PR_MCE_KILL_LATE, PR_MCE_KILL_EARLY, PR_MCE_KILL_DEFAULT
prctl$PR_SET_MM(option const[PR_SET_MM], opt flags[prctl_mm_option], arg vma)
prctl$PR_SET_MM_EXE_FILE(option const[PR_SET_MM], opt const[PR_SET_MM_EXE_FILE], arg fd)
prctl$PR_SET_MM_AUXV(option const[PR_SET_MM], opt const[PR_SET_MM_AUXV], arg ptr[in, array[int8]], len bytesize[arg])
prctl$PR_SET_MM_MAP(option const[PR_SET_MM], opt const[PR_SET_MM_MAP], arg ptr[in, prctl_mm_map], len bytesize[arg])
prctl$PR_SET_MM_MAP_SIZE(option const[PR_SET_MM], opt const[PR_SET_MM_MAP_SIZE], arg ptr[out, int32])
prctl_mm_option = PR_SET_MM_START_CODE, PR_SET_MM_END_CODE, PR_SET_MM_START_DATA, PR_SET_MM_END_DATA, PR_SET_MM_START_STACK, PR_SET_MM_START_BRK, PR_SET_MM_BRK, PR_SET_MM_ARG_START, PR_SET_MM_ARG_END, PR_SET_MM_ENV_START, PR_SET_MM_ENV_END
prctl_mm_map {
start_code vma64
end_code vma64
start_data vma64
end_data vma64
start_brk vma64
brk vma64
start_stack vma64
arg_start vma64
arg_end vma64
env_start vma64
env_end vma64
auxv ptr[in, array[int8]]
auxv_size bytesize[auxv, int32]
exe_fd fd
}
prctl$PR_SET_PTRACER(option const[PR_SET_PTRACER], pid pid)
prctl$PR_SET_CHILD_SUBREAPER(option const[PR_SET_CHILD_SUBREAPER], arg boolptr)
prctl$PR_GET_CHILD_SUBREAPER(option const[PR_GET_CHILD_SUBREAPER])
prctl$PR_SET_NO_NEW_PRIVS(option const[PR_SET_NO_NEW_PRIVS], arg const[1])
prctl$PR_GET_NO_NEW_PRIVS(option const[PR_GET_NO_NEW_PRIVS])
prctl$PR_GET_TID_ADDRESS(option const[PR_GET_TID_ADDRESS], arg ptr[out, intptr])
prctl$PR_SET_THP_DISABLE(option const[PR_SET_THP_DISABLE], arg boolptr)
prctl$PR_GET_THP_DISABLE(option const[PR_GET_THP_DISABLE])
prctl$PR_MPX_ENABLE_MANAGEMENT(option const[PR_MPX_ENABLE_MANAGEMENT])
prctl$PR_MPX_DISABLE_MANAGEMENT(option const[PR_MPX_DISABLE_MANAGEMENT])
prctl$PR_SET_FP_MODE(option const[PR_SET_FP_MODE], arg flags[prctl_fp_mode])
prctl$PR_GET_FP_MODE(option const[PR_GET_FP_MODE])
prctl_fp_mode = PR_FP_MODE_FR, PR_FP_MODE_FRE
prctl$PR_CAP_AMBIENT(option const[PR_CAP_AMBIENT], arg2 flags[prctl_cap_ambient], arg3 int32[0:CAP_LAST_CAP])
prctl_cap_ambient = PR_CAP_AMBIENT_IS_SET, PR_CAP_AMBIENT_RAISE, PR_CAP_AMBIENT_LOWER, PR_CAP_AMBIENT_CLEAR_ALL
prctl$PR_SVE_SET_VL(option const[PR_SVE_SET_VL], arg intptr[0:PR_SVE_SET_VL_ONEXEC])
prctl$PR_SVE_GET_VL(option const[PR_SVE_GET_VL], arg intptr[0:PR_SVE_VL_INHERIT])
prctl$PR_GET_SPECULATION_CTRL(option const[PR_GET_SPECULATION_CTRL], arg2 const[PR_SPEC_STORE_BYPASS], arg3 flags[pr_spec_mode])
prctl$PR_SET_SPECULATION_CTRL(option const[PR_SET_SPECULATION_CTRL], arg2 const[PR_SPEC_STORE_BYPASS])
pr_spec_mode = PR_SPEC_ENABLE, PR_SPEC_DISABLE, PR_SPEC_FORCE_DISABLE
arch_prctl$ARCH_GET_FS(code const[ARCH_GET_FS], arg ptr[out, int64])
arch_prctl$ARCH_GET_GS(code const[ARCH_GET_GS], arg ptr[out, int64])
arch_prctl$ARCH_SET_GS(code const[ARCH_SET_GS], arg int64)
arch_prctl$ARCH_GET_CPUID(code const[ARCH_GET_CPUID])
arch_prctl$ARCH_SET_CPUID(code const[ARCH_SET_CPUID], arg boolptr)
arch_prctl$ARCH_MAP_VDSO_X32(code const[ARCH_MAP_VDSO_X32], arg intptr)
arch_prctl$ARCH_MAP_VDSO_32(code const[ARCH_MAP_VDSO_32], arg intptr)
arch_prctl$ARCH_MAP_VDSO_64(code const[ARCH_MAP_VDSO_64], arg intptr)
_ = ARCH_SET_FS
|