summaryrefslogtreecommitdiffhomepage
path: root/pkg/abi/linux/prctl.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/abi/linux/prctl.go')
-rw-r--r--pkg/abi/linux/prctl.go157
1 files changed, 157 insertions, 0 deletions
diff --git a/pkg/abi/linux/prctl.go b/pkg/abi/linux/prctl.go
new file mode 100644
index 000000000..0428282dd
--- /dev/null
+++ b/pkg/abi/linux/prctl.go
@@ -0,0 +1,157 @@
+// Copyright 2018 The gVisor Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package linux
+
+// PR_* flags, from <linux/pcrtl.h> for prctl(2).
+const (
+ // PR_SET_PDEATHSIG sets the process' death signal.
+ PR_SET_PDEATHSIG = 1
+
+ // PR_GET_PDEATHSIG gets the process' death signal.
+ PR_GET_PDEATHSIG = 2
+
+ // PR_GET_DUMPABLE gets the process' dumpable flag.
+ PR_GET_DUMPABLE = 3
+
+ // PR_SET_DUMPABLE sets the process' dumpable flag.
+ PR_SET_DUMPABLE = 4
+
+ // PR_GET_KEEPCAPS gets the value of the keep capabilities flag.
+ PR_GET_KEEPCAPS = 7
+
+ // PR_SET_KEEPCAPS sets the value of the keep capabilities flag.
+ PR_SET_KEEPCAPS = 8
+
+ // PR_GET_TIMING gets the process' timing method.
+ PR_GET_TIMING = 13
+
+ // PR_SET_TIMING sets the process' timing method.
+ PR_SET_TIMING = 14
+
+ // PR_SET_NAME sets the process' name.
+ PR_SET_NAME = 15
+
+ // PR_GET_NAME gets the process' name.
+ PR_GET_NAME = 16
+
+ // PR_GET_SECCOMP gets a process' seccomp mode.
+ PR_GET_SECCOMP = 21
+
+ // PR_SET_SECCOMP sets a process' seccomp mode.
+ PR_SET_SECCOMP = 22
+
+ // PR_CAPBSET_READ gets the capability bounding set.
+ PR_CAPBSET_READ = 23
+
+ // PR_CAPBSET_DROP sets the capability bounding set.
+ PR_CAPBSET_DROP = 24
+
+ // PR_GET_TSC gets the value of the flag determining whether the
+ // timestamp counter can be read.
+ PR_GET_TSC = 25
+
+ // PR_SET_TSC sets the value of the flag determining whether the
+ // timestamp counter can be read.
+ PR_SET_TSC = 26
+
+ // PR_SET_TIMERSLACK sets the process' time slack.
+ PR_SET_TIMERSLACK = 29
+
+ // PR_GET_TIMERSLACK gets the process' time slack.
+ PR_GET_TIMERSLACK = 30
+
+ // PR_TASK_PERF_EVENTS_DISABLE disables all performance counters
+ // attached to the calling process.
+ PR_TASK_PERF_EVENTS_DISABLE = 31
+
+ // PR_TASK_PERF_EVENTS_ENABLE enables all performance counters attached
+ // to the calling process.
+ PR_TASK_PERF_EVENTS_ENABLE = 32
+
+ // PR_MCE_KILL sets the machine check memory corruption kill policy for
+ // the calling thread.
+ PR_MCE_KILL = 33
+
+ // PR_MCE_KILL_GET gets the machine check memory corruption kill policy
+ // for the calling thread.
+ PR_MCE_KILL_GET = 34
+
+ // PR_SET_MM modifies certain kernel memory map descriptor fields of
+ // the calling process. See prctl(2) for more information.
+ PR_SET_MM = 35
+
+ PR_SET_MM_START_CODE = 1
+ PR_SET_MM_END_CODE = 2
+ PR_SET_MM_START_DATA = 3
+ PR_SET_MM_END_DATA = 4
+ PR_SET_MM_START_STACK = 5
+ PR_SET_MM_START_BRK = 6
+ PR_SET_MM_BRK = 7
+ PR_SET_MM_ARG_START = 8
+ PR_SET_MM_ARG_END = 9
+ PR_SET_MM_ENV_START = 10
+ PR_SET_MM_ENV_END = 11
+ PR_SET_MM_AUXV = 12
+ // PR_SET_MM_EXE_FILE supersedes the /proc/pid/exe symbolic link with a
+ // new one pointing to a new executable file identified by the file
+ // descriptor provided in arg3 argument. See prctl(2) for more
+ // information.
+ PR_SET_MM_EXE_FILE = 13
+ PR_SET_MM_MAP = 14
+ PR_SET_MM_MAP_SIZE = 15
+
+ // PR_SET_CHILD_SUBREAPER sets the "child subreaper" attribute of the
+ // calling process.
+ PR_SET_CHILD_SUBREAPER = 36
+
+ // PR_GET_CHILD_SUBREAPER gets the "child subreaper" attribute of the
+ // calling process.
+ PR_GET_CHILD_SUBREAPER = 37
+
+ // PR_SET_NO_NEW_PRIVS sets the calling thread's no_new_privs bit.
+ PR_SET_NO_NEW_PRIVS = 38
+
+ // PR_GET_NO_NEW_PRIVS gets the calling thread's no_new_privs bit.
+ PR_GET_NO_NEW_PRIVS = 39
+
+ // PR_GET_TID_ADDRESS retrieves the clear_child_tid address.
+ PR_GET_TID_ADDRESS = 40
+
+ // PR_SET_THP_DISABLE sets the state of the "THP disable" flag for the
+ // calling thread.
+ PR_SET_THP_DISABLE = 41
+
+ // PR_GET_THP_DISABLE gets the state of the "THP disable" flag for the
+ // calling thread.
+ PR_GET_THP_DISABLE = 42
+
+ // PR_MPX_ENABLE_MANAGEMENT enables kernel management of Memory
+ // Protection eXtensions (MPX) bounds tables.
+ PR_MPX_ENABLE_MANAGEMENT = 43
+
+ // PR_MPX_DISABLE_MANAGEMENT disables kernel management of Memory
+ // Protection eXtensions (MPX) bounds tables.
+ PR_MPX_DISABLE_MANAGEMENT = 44
+)
+
+// From <asm/prctl.h>
+// Flags are used in syscall arch_prctl(2).
+const (
+ ARCH_SET_GS = 0x1001
+ ARCH_SET_FS = 0x1002
+ ARCH_GET_FS = 0x1003
+ ARCH_GET_GS = 0x1004
+ ARCH_SET_CPUID = 0x1012
+)