prctl.ha (5039B)
1 // SPDX-License-Identifier: MPL-2.0 2 // (c) Hare authors <https://harelang.org> 3 4 export def PR_SET_PDEATHSIG = 1; 5 export def PR_GET_PDEATHSIG = 2; 6 export def PR_GET_DUMPABLE = 3; 7 export def PR_SET_DUMPABLE = 4; 8 export def PR_GET_UNALIGN = 5; 9 export def PR_SET_UNALIGN = 6; 10 export def PR_UNALIGN_NOPRINT = 1; 11 export def PR_UNALIGN_SIGBUS = 2; 12 export def PR_GET_KEEPCAPS = 7; 13 export def PR_SET_KEEPCAPS = 8; 14 export def PR_GET_FPEMU = 9; 15 export def PR_SET_FPEMU = 10; 16 export def PR_FPEMU_NOPRINT = 1; 17 export def PR_FPEMU_SIGFPE = 2; 18 export def PR_GET_FPEXC = 11; 19 export def PR_SET_FPEXC = 12; 20 export def PR_FP_EXC_SW_ENABLE = 0x80; 21 export def PR_FP_EXC_DIV = 0x010000; 22 export def PR_FP_EXC_OVF = 0x020000; 23 export def PR_FP_EXC_UND = 0x040000; 24 export def PR_FP_EXC_RES = 0x080000; 25 export def PR_FP_EXC_INV = 0x100000; 26 export def PR_FP_EXC_DISABLED = 0; 27 export def PR_FP_EXC_NONRECOV = 1; 28 export def PR_FP_EXC_ASYNC = 2; 29 export def PR_FP_EXC_PRECISE = 3; 30 export def PR_GET_TIMING = 13; 31 export def PR_SET_TIMING = 14; 32 export def PR_TIMING_STATISTICAL = 0; 33 export def PR_TIMING_TIMESTAMP = 1; 34 export def PR_SET_NAME = 15; 35 export def PR_GET_NAME = 16; 36 export def PR_GET_ENDIAN = 19; 37 export def PR_SET_ENDIAN = 20; 38 export def PR_ENDIAN_BIG = 0; 39 export def PR_ENDIAN_LITTLE = 1; 40 export def PR_ENDIAN_PPC_LITTLE = 2; 41 export def PR_GET_SECCOMP = 21; 42 export def PR_SET_SECCOMP = 22; 43 export def PR_CAPBSET_READ = 23; 44 export def PR_CAPBSET_DROP = 24; 45 export def PR_GET_TSC = 25; 46 export def PR_SET_TSC = 26; 47 export def PR_TSC_ENABLE = 1; 48 export def PR_TSC_SIGSEGV = 2; 49 export def PR_GET_SECUREBITS = 27; 50 export def PR_SET_SECUREBITS = 28; 51 export def PR_SET_TIMERSLACK = 29; 52 export def PR_GET_TIMERSLACK = 30; 53 54 export def PR_TASK_PERF_EVENTS_DISABLE = 31; 55 export def PR_TASK_PERF_EVENTS_ENABLE = 32; 56 57 export def PR_MCE_KILL = 33; 58 export def PR_MCE_KILL_CLEAR = 0; 59 export def PR_MCE_KILL_SET = 1; 60 export def PR_MCE_KILL_LATE = 0; 61 export def PR_MCE_KILL_EARLY = 1; 62 export def PR_MCE_KILL_DEFAULT = 2; 63 export def PR_MCE_KILL_GET = 34; 64 65 export def PR_SET_MM = 35; 66 export def PR_SET_MM_START_CODE = 1; 67 export def PR_SET_MM_END_CODE = 2; 68 export def PR_SET_MM_START_DATA = 3; 69 export def PR_SET_MM_END_DATA = 4; 70 export def PR_SET_MM_START_STACK = 5; 71 export def PR_SET_MM_START_BRK = 6; 72 export def PR_SET_MM_BRK = 7; 73 export def PR_SET_MM_ARG_START = 8; 74 export def PR_SET_MM_ARG_END = 9; 75 export def PR_SET_MM_ENV_START = 10; 76 export def PR_SET_MM_ENV_END = 11; 77 export def PR_SET_MM_AUXV = 12; 78 export def PR_SET_MM_EXE_FILE = 13; 79 export def PR_SET_MM_MAP = 14; 80 export def PR_SET_MM_MAP_SIZE = 15; 81 82 export type prctl_mm_map = struct { 83 start_code: u64, 84 end_code: u64, 85 start_data: u64, 86 end_data: u64, 87 start_brk: u64, 88 brk: u64, 89 start_stack: u64, 90 arg_start: u64, 91 arg_end: u64, 92 env_start: u64, 93 env_end: u64, 94 auxv: *u64, 95 auxv_size: u32, 96 exe_fd: u32, 97 }; 98 99 export def PR_SET_PTRACER = 0x59616d61; 100 export def PR_SET_PTRACER_ANY = -1; 101 102 export def PR_SET_CHILD_SUBREAPER = 36; 103 export def PR_GET_CHILD_SUBREAPER = 37; 104 105 export def PR_SET_NO_NEW_PRIVS = 38; 106 export def PR_GET_NO_NEW_PRIVS = 39; 107 108 export def PR_GET_TID_ADDRESS = 40; 109 110 export def PR_SET_THP_DISABLE = 41; 111 export def PR_GET_THP_DISABLE = 42; 112 113 export def PR_MPX_ENABLE_MANAGEMENT = 43; 114 export def PR_MPX_DISABLE_MANAGEMENT = 44; 115 116 export def PR_SET_FP_MODE = 45; 117 export def PR_GET_FP_MODE = 46; 118 export def PR_FP_MODE_FR = 1 << 0; 119 export def PR_FP_MODE_FRE = 1 << 1; 120 121 export def PR_CAP_AMBIENT = 47; 122 export def PR_CAP_AMBIENT_IS_SET = 1; 123 export def PR_CAP_AMBIENT_RAISE = 2; 124 export def PR_CAP_AMBIENT_LOWER = 3; 125 export def PR_CAP_AMBIENT_CLEAR_ALL = 4; 126 127 export def PR_SVE_SET_VL = 50; 128 export def PR_SVE_SET_VL_ONEXEC = 1 << 18; 129 export def PR_SVE_GET_VL = 51; 130 export def PR_SVE_VL_LEN_MASK = 0xffff; 131 export def PR_SVE_VL_INHERIT = 1 << 17; 132 133 export def PR_GET_SPECULATION_CTRL = 52; 134 export def PR_SET_SPECULATION_CTRL = 53; 135 export def PR_SPEC_STORE_BYPASS = 0; 136 export def PR_SPEC_INDIRECT_BRANCH = 1; 137 export def PR_SPEC_NOT_AFFECTED = 0; 138 export def PR_SPEC_PRCTL = 1 << 0; 139 export def PR_SPEC_ENABLE = 1 << 1; 140 export def PR_SPEC_DISABLE = 1 << 2; 141 export def PR_SPEC_FORCE_DISABLE = 1 << 3; 142 export def PR_SPEC_DISABLE_NOEXEC = 1 << 4; 143 144 export def PR_PAC_RESET_KEYS = 54; 145 export def PR_PAC_APIAKEY = 1 << 0; 146 export def PR_PAC_APIBKEY = 1 << 1; 147 export def PR_PAC_APDAKEY = 1 << 2; 148 export def PR_PAC_APDBKEY = 1 << 3; 149 export def PR_PAC_APGAKEY = 1 << 4; 150 151 export def PR_SET_TAGGED_ADDR_CTRL = 55; 152 export def PR_GET_TAGGED_ADDR_CTRL = 56; 153 export def PR_TAGGED_ADDR_ENABLE = 1 << 0; 154 export def PR_MTE_TCF_SHIFT = 1; 155 export def PR_MTE_TCF_NONE = 0 << 1; 156 export def PR_MTE_TCF_SYNC = 1 << 1; 157 export def PR_MTE_TCF_ASYNC = 2 << 1; 158 export def PR_MTE_TCF_MASK = 3 << 1; 159 export def PR_MTE_TAG_SHIFT = 3; 160 export def PR_MTE_TAG_MASK = 0xffff << 3; 161 162 export def PR_SET_IO_FLUSHER = 57; 163 export def PR_GET_IO_FLUSHER = 58; 164 165 export def PR_SET_SYSCALL_USER_DISPATCH = 59; 166 export def PR_SYS_DISPATCH_OFF = 0; 167 export def PR_SYS_DISPATCH_ON = 1; 168 export def SYSCALL_DISPATCH_FILTER_ALLOW = 0; 169 export def SYSCALL_DISPATCH_FILTER_BLOCK = 1;