// SPDX-License-Identifier: MIT // Copyright (c) 2015-2020 Zig Contributors // This file is part of [zig](https://ziglang.org/), which is MIT licensed. // The MIT license requires this copyright notice to be included in all copies // and substantial portions of the software. pub const PR = extern enum(i32) { SET_PDEATHSIG = 1, GET_PDEATHSIG = 2, GET_DUMPABLE = 3, SET_DUMPABLE = 4, GET_UNALIGN = 5, SET_UNALIGN = 6, GET_KEEPCAPS = 7, SET_KEEPCAPS = 8, GET_FPEMU = 9, SET_FPEMU = 10, GET_FPEXC = 11, SET_FPEXC = 12, GET_TIMING = 13, SET_TIMING = 14, SET_NAME = 15, GET_NAME = 16, GET_ENDIAN = 19, SET_ENDIAN = 20, GET_SECCOMP = 21, SET_SECCOMP = 22, CAPBSET_READ = 23, CAPBSET_DROP = 24, GET_TSC = 25, SET_TSC = 26, GET_SECUREBITS = 27, SET_SECUREBITS = 28, SET_TIMERSLACK = 29, GET_TIMERSLACK = 30, TASK_PERF_EVENTS_DISABLE = 31, TASK_PERF_EVENTS_ENABLE = 32, MCE_KILL = 33, MCE_KILL_GET = 34, SET_MM = 35, SET_PTRACER = 0x59616d61, SET_CHILD_SUBREAPER = 36, GET_CHILD_SUBREAPER = 37, SET_NO_NEW_PRIVS = 38, GET_NO_NEW_PRIVS = 39, GET_TID_ADDRESS = 40, SET_THP_DISABLE = 41, GET_THP_DISABLE = 42, MPX_ENABLE_MANAGEMENT = 43, MPX_DISABLE_MANAGEMENT = 44, SET_FP_MODE = 45, GET_FP_MODE = 46, CAP_AMBIENT = 47, SVE_SET_VL = 50, SVE_GET_VL = 51, GET_SPECULATION_CTRL = 52, SET_SPECULATION_CTRL = 53, _, }; pub const PR_SET_PDEATHSIG = @enumToInt(PR.SET_PDEATHSIG); pub const PR_GET_PDEATHSIG = @enumToInt(PR.GET_PDEATHSIG); pub const PR_GET_DUMPABLE = @enumToInt(PR.GET_DUMPABLE); pub const PR_SET_DUMPABLE = @enumToInt(PR.SET_DUMPABLE); pub const PR_GET_UNALIGN = @enumToInt(PR.GET_UNALIGN); pub const PR_SET_UNALIGN = @enumToInt(PR.SET_UNALIGN); pub const PR_UNALIGN_NOPRINT = 1; pub const PR_UNALIGN_SIGBUS = 2; pub const PR_GET_KEEPCAPS = @enumToInt(PR.GET_KEEPCAPS); pub const PR_SET_KEEPCAPS = @enumToInt(PR.SET_KEEPCAPS); pub const PR_GET_FPEMU = @enumToInt(PR.GET_FPEMU); pub const PR_SET_FPEMU = @enumToInt(PR.SET_FPEMU); pub const PR_FPEMU_NOPRINT = 1; pub const PR_FPEMU_SIGFPE = 2; pub const PR_GET_FPEXC = @enumToInt(PR.GET_FPEXC); pub const PR_SET_FPEXC = @enumToInt(PR.SET_FPEXC); pub const PR_FP_EXC_SW_ENABLE = 0x80; pub const PR_FP_EXC_DIV = 0x010000; pub const PR_FP_EXC_OVF = 0x020000; pub const PR_FP_EXC_UND = 0x040000; pub const PR_FP_EXC_RES = 0x080000; pub const PR_FP_EXC_INV = 0x100000; pub const PR_FP_EXC_DISABLED = 0; pub const PR_FP_EXC_NONRECOV = 1; pub const PR_FP_EXC_ASYNC = 2; pub const PR_FP_EXC_PRECISE = 3; pub const PR_GET_TIMING = @enumToInt(PR.GET_TIMING); pub const PR_SET_TIMING = @enumToInt(PR.SET_TIMING); pub const PR_TIMING_STATISTICAL = 0; pub const PR_TIMING_TIMESTAMP = 1; pub const PR_SET_NAME = @enumToInt(PR.SET_NAME); pub const PR_GET_NAME = @enumToInt(PR.GET_NAME); pub const PR_GET_ENDIAN = @enumToInt(PR.GET_ENDIAN); pub const PR_SET_ENDIAN = @enumToInt(PR.SET_ENDIAN); pub const PR_ENDIAN_BIG = 0; pub const PR_ENDIAN_LITTLE = 1; pub const PR_ENDIAN_PPC_LITTLE = 2; pub const PR_GET_SECCOMP = @enumToInt(PR.GET_SECCOMP); pub const PR_SET_SECCOMP = @enumToInt(PR.SET_SECCOMP); pub const PR_CAPBSET_READ = @enumToInt(PR.CAPBSET_READ); pub const PR_CAPBSET_DROP = @enumToInt(PR.CAPBSET_DROP); pub const PR_GET_TSC = @enumToInt(PR.GET_TSC); pub const PR_SET_TSC = @enumToInt(PR.SET_TSC); pub const PR_TSC_ENABLE = 1; pub const PR_TSC_SIGSEGV = 2; pub const PR_GET_SECUREBITS = @enumToInt(PR.GET_SECUREBITS); pub const PR_SET_SECUREBITS = @enumToInt(PR.SET_SECUREBITS); pub const PR_SET_TIMERSLACK = @enumToInt(PR.SET_TIMERSLACK); pub const PR_GET_TIMERSLACK = @enumToInt(PR.GET_TIMERSLACK); pub const PR_TASK_PERF_EVENTS_DISABLE = @enumToInt(PR.TASK_PERF_EVENTS_DISABLE); pub const PR_TASK_PERF_EVENTS_ENABLE = @enumToInt(PR.TASK_PERF_EVENTS_ENABLE); pub const PR_MCE_KILL = @enumToInt(PR.MCE_KILL); pub const PR_MCE_KILL_CLEAR = 0; pub const PR_MCE_KILL_SET = 1; pub const PR_MCE_KILL_LATE = 0; pub const PR_MCE_KILL_EARLY = 1; pub const PR_MCE_KILL_DEFAULT = 2; pub const PR_MCE_KILL_GET = @enumToInt(PR.MCE_KILL_GET); pub const PR_SET_MM = @enumToInt(PR.SET_MM); pub const PR_SET_MM_START_CODE = 1; pub const PR_SET_MM_END_CODE = 2; pub const PR_SET_MM_START_DATA = 3; pub const PR_SET_MM_END_DATA = 4; pub const PR_SET_MM_START_STACK = 5; pub const PR_SET_MM_START_BRK = 6; pub const PR_SET_MM_BRK = 7; pub const PR_SET_MM_ARG_START = 8; pub const PR_SET_MM_ARG_END = 9; pub const PR_SET_MM_ENV_START = 10; pub const PR_SET_MM_ENV_END = 11; pub const PR_SET_MM_AUXV = 12; pub const PR_SET_MM_EXE_FILE = 13; pub const PR_SET_MM_MAP = 14; pub const PR_SET_MM_MAP_SIZE = 15; pub const prctl_mm_map = extern struct { start_code: u64, end_code: u64, start_data: u64, end_data: u64, start_brk: u64, brk: u64, start_stack: u64, arg_start: u64, arg_end: u64, env_start: u64, env_end: u64, auxv: *u64, auxv_size: u32, exe_fd: u32, }; pub const PR_SET_PTRACER = @enumToInt(PR.SET_PTRACER); pub const PR_SET_PTRACER_ANY = std.math.maxInt(c_ulong); pub const PR_SET_CHILD_SUBREAPER = @enumToInt(PR.SET_CHILD_SUBREAPER); pub const PR_GET_CHILD_SUBREAPER = @enumToInt(PR.GET_CHILD_SUBREAPER); pub const PR_SET_NO_NEW_PRIVS = @enumToInt(PR.SET_NO_NEW_PRIVS); pub const PR_GET_NO_NEW_PRIVS = @enumToInt(PR.GET_NO_NEW_PRIVS); pub const PR_GET_TID_ADDRESS = @enumToInt(PR.GET_TID_ADDRESS); pub const PR_SET_THP_DISABLE = @enumToInt(PR.SET_THP_DISABLE); pub const PR_GET_THP_DISABLE = @enumToInt(PR.GET_THP_DISABLE); pub const PR_MPX_ENABLE_MANAGEMENT = @enumToInt(PR.MPX_ENABLE_MANAGEMENT); pub const PR_MPX_DISABLE_MANAGEMENT = @enumToInt(PR.MPX_DISABLE_MANAGEMENT); pub const PR_SET_FP_MODE = @enumToInt(PR.SET_FP_MODE); pub const PR_GET_FP_MODE = @enumToInt(PR.GET_FP_MODE); pub const PR_FP_MODE_FR = 1 << 0; pub const PR_FP_MODE_FRE = 1 << 1; pub const PR_CAP_AMBIENT = @enumToInt(PR.CAP_AMBIENT); pub const PR_CAP_AMBIENT_IS_SET = 1; pub const PR_CAP_AMBIENT_RAISE = 2; pub const PR_CAP_AMBIENT_LOWER = 3; pub const PR_CAP_AMBIENT_CLEAR_ALL = 4; pub const PR_SVE_SET_VL = @enumToInt(PR.SVE_SET_VL); pub const PR_SVE_SET_VL_ONEXEC = 1 << 18; pub const PR_SVE_GET_VL = @enumToInt(PR.SVE_GET_VL); pub const PR_SVE_VL_LEN_MASK = 0xffff; pub const PR_SVE_VL_INHERIT = 1 << 17; pub const PR_GET_SPECULATION_CTRL = @enumToInt(PR.GET_SPECULATION_CTRL); pub const PR_SET_SPECULATION_CTRL = @enumToInt(PR.SET_SPECULATION_CTRL); pub const PR_SPEC_STORE_BYPASS = 0; pub const PR_SPEC_NOT_AFFECTED = 0; pub const PR_SPEC_PRCTL = 1 << 0; pub const PR_SPEC_ENABLE = 1 << 1; pub const PR_SPEC_DISABLE = 1 << 2; pub const PR_SPEC_FORCE_DISABLE = 1 << 3;