github.com/afumu/libc@v0.0.6/musl/include/sys/prctl.h (about)

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