aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2021-03-10 17:20:21 +0100
committerDmitry Vyukov <dvyukov@google.com>2021-03-10 18:40:31 +0100
commitc2ca1f2a94f7bc6f676d2e6a3313aa0817be2869 (patch)
tree8b77c0f05dfc4e751f59c542e4a66b5392d1391b
parent764067f3e1106ab958069c12c978aac62592f5ef (diff)
sys/linux: add new prctl's
-rw-r--r--sys/linux/prctl.txt17
-rw-r--r--sys/linux/prctl.txt.const18
2 files changed, 34 insertions, 1 deletions
diff --git a/sys/linux/prctl.txt b/sys/linux/prctl.txt
index 56bddb17b..bbae46c62 100644
--- a/sys/linux/prctl.txt
+++ b/sys/linux/prctl.txt
@@ -131,7 +131,7 @@ prctl$PR_GET_FP_MODE(option const[PR_GET_FP_MODE]) (breaks_returns, ignore_retur
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]) (breaks_returns, ignore_return)
+prctl$PR_CAP_AMBIENT(option const[PR_CAP_AMBIENT], arg2 flags[prctl_cap_ambient], arg3 intptr[0:CAP_LAST_CAP]) (breaks_returns, ignore_return)
prctl_cap_ambient = PR_CAP_AMBIENT_IS_SET, PR_CAP_AMBIENT_RAISE, PR_CAP_AMBIENT_LOWER, PR_CAP_AMBIENT_CLEAR_ALL
@@ -143,6 +143,21 @@ prctl$PR_SET_SPECULATION_CTRL(option const[PR_SET_SPECULATION_CTRL], arg2 const[
pr_spec_mode = PR_SPEC_ENABLE, PR_SPEC_DISABLE, PR_SPEC_FORCE_DISABLE
+prctl$PR_PAC_RESET_KEYS(option const[PR_PAC_RESET_KEYS], arg2 flags[prctl_pac_keys]) (breaks_returns, ignore_return)
+
+prctl_pac_keys = PR_PAC_APIAKEY, PR_PAC_APIBKEY, PR_PAC_APDAKEY, PR_PAC_APDBKEY, PR_PAC_APGAKEY
+
+prctl$PR_SET_TAGGED_ADDR_CTRL(option const[PR_SET_TAGGED_ADDR_CTRL], arg2 flags[prctl_mte_ctl]) (breaks_returns, ignore_return)
+prctl$PR_GET_TAGGED_ADDR_CTRL(option const[PR_GET_TAGGED_ADDR_CTRL]) (breaks_returns, ignore_return)
+
+prctl_mte_ctl = PR_TAGGED_ADDR_ENABLE, PR_MTE_TCF_NONE, PR_MTE_TCF_SYNC, PR_MTE_TCF_ASYNC, PR_MTE_TAG_MASK
+
+prctl$PR_SET_IO_FLUSHER(option const[PR_SET_IO_FLUSHER], arg2 boolptr) (breaks_returns, ignore_return)
+prctl$PR_GET_IO_FLUSHER(option const[PR_GET_IO_FLUSHER]) (breaks_returns, ignore_return)
+
+prctl$PR_SET_SYSCALL_USER_DISPATCH_OFF(option const[PR_SET_SYSCALL_USER_DISPATCH], mode const[PR_SYS_DISPATCH_OFF]) (breaks_returns, ignore_return)
+prctl$PR_SET_SYSCALL_USER_DISPATCH_ON(option const[PR_SET_SYSCALL_USER_DISPATCH], mode const[PR_SYS_DISPATCH_ON], offset intptr, len intptr, selector ptr[in, bool8]) (breaks_returns, ignore_return)
+
arch_prctl$ARCH_GET_FS(code const[ARCH_GET_FS], arg ptr[out, intptr])
arch_prctl$ARCH_GET_GS(code const[ARCH_GET_GS], arg ptr[out, intptr])
arch_prctl$ARCH_SET_GS(code const[ARCH_SET_GS], arg ptr[out, intptr])
diff --git a/sys/linux/prctl.txt.const b/sys/linux/prctl.txt.const
index 547cd8dd9..b74d05a0a 100644
--- a/sys/linux/prctl.txt.const
+++ b/sys/linux/prctl.txt.const
@@ -40,6 +40,7 @@ PR_GET_ENDIAN = 19
PR_GET_FPEMU = 9
PR_GET_FPEXC = 11
PR_GET_FP_MODE = 46
+PR_GET_IO_FLUSHER = 58
PR_GET_KEEPCAPS = 7
PR_GET_NAME = 16
PR_GET_NO_NEW_PRIVS = 39
@@ -47,6 +48,7 @@ PR_GET_PDEATHSIG = 2
PR_GET_SECCOMP = 21
PR_GET_SECUREBITS = 27
PR_GET_SPECULATION_CTRL = 52
+PR_GET_TAGGED_ADDR_CTRL = 56
PR_GET_THP_DISABLE = 42
PR_GET_TID_ADDRESS = 40
PR_GET_TIMERSLACK = 30
@@ -62,12 +64,23 @@ PR_MCE_KILL_LATE = 0
PR_MCE_KILL_SET = 1
PR_MPX_DISABLE_MANAGEMENT = 44
PR_MPX_ENABLE_MANAGEMENT = 43
+PR_MTE_TAG_MASK = 524280
+PR_MTE_TCF_ASYNC = 4
+PR_MTE_TCF_NONE = 0
+PR_MTE_TCF_SYNC = 2
+PR_PAC_APDAKEY = 4
+PR_PAC_APDBKEY = 8
+PR_PAC_APGAKEY = 16
+PR_PAC_APIAKEY = 1
+PR_PAC_APIBKEY = 2
+PR_PAC_RESET_KEYS = 54
PR_SET_CHILD_SUBREAPER = 36
PR_SET_DUMPABLE = 4
PR_SET_ENDIAN = 20
PR_SET_FPEMU = 10
PR_SET_FPEXC = 12
PR_SET_FP_MODE = 45
+PR_SET_IO_FLUSHER = 57
PR_SET_KEEPCAPS = 8
PR_SET_MM = 35
PR_SET_MM_ARG_END = 9
@@ -92,6 +105,8 @@ PR_SET_PTRACER = 1499557217
PR_SET_SECCOMP = 22
PR_SET_SECUREBITS = 28
PR_SET_SPECULATION_CTRL = 53
+PR_SET_SYSCALL_USER_DISPATCH = 59
+PR_SET_TAGGED_ADDR_CTRL = 55
PR_SET_THP_DISABLE = 41
PR_SET_TIMERSLACK = 29
PR_SET_TIMING = 14
@@ -105,6 +120,9 @@ PR_SVE_GET_VL = 51
PR_SVE_SET_VL = 50
PR_SVE_SET_VL_ONEXEC = 262144
PR_SVE_VL_INHERIT = 131072
+PR_SYS_DISPATCH_OFF = 0
+PR_SYS_DISPATCH_ON = 1
+PR_TAGGED_ADDR_ENABLE = 1
PR_TASK_PERF_EVENTS_DISABLE = 31
PR_TASK_PERF_EVENTS_ENABLE = 32
PR_TSC_ENABLE = 1