hare

[hare] The Hare programming language
git clone https://git.torresjrjr.com/hare.git
Log | Files | Refs | README | LICENSE

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;