hare

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

sysctl.ha (12614B)


      1 // SPDX-License-Identifier: MPL-2.0
      2 // (c) Hare authors <https://harelang.org>
      3 
      4 // Taken from NetBSD's sys/sysctl.h
      5 
      6 export def CTL_KERN: u32			= 1; // "high kernel": proc, limits
      7 export def CTL_VM: u32				= 2; // virtual memory
      8 export def CTL_VFS: u32				= 3; // file system, mount type is next
      9 export def CTL_NET: u32				= 4; // network, see socket.h
     10 export def CTL_DEBUG: u32			= 5; // debugging parameters
     11 export def CTL_HW: u32				= 6; // generic CPU/io
     12 export def CTL_MACHDEP: u32			= 7; // machine dependent
     13 export def CTL_USER: u32			= 8; // user-level
     14 export def CTL_DDB: u32				= 9; // in-kernel debugger
     15 export def CTL_PROC: u32			= 10; // per-proc attr
     16 export def CTL_VENDOR: u32			= 11; // vendor-specific data
     17 export def CTL_EMUL: u32			= 12; // emulation-specific data
     18 export def CTL_SECURITY: u32			= 13; // security
     19 
     20 export def KERN_OSTYPE: u32			= 1; // string: system version
     21 export def KERN_OSRELEASE: u32			= 2; // string: system release
     22 export def KERN_OSREV: u32			= 3; // int: system revision
     23 export def KERN_VERSION: u32			= 4; // string: compile time info
     24 export def KERN_MAXVNODES: u32			= 5; // int: max vnodes
     25 export def KERN_MAXPROC: u32			= 6; // int: max processes
     26 export def KERN_MAXFILES: u32			= 7; // int: max open files
     27 export def KERN_ARGMAX: u32			= 8; // int: max arguments to exec
     28 export def KERN_SECURELVL: u32			= 9; // int: system security level
     29 export def KERN_HOSTNAME: u32			= 10; // string: hostname
     30 export def KERN_HOSTID: u32			= 11; // int: host identifier
     31 export def KERN_CLOCKRATE: u32			= 12; // struct: struct clockinfo
     32 export def KERN_VNODE: u32			= 13; // struct: vnode structures
     33 export def KERN_PROC: u32			= 14; // struct: process entries
     34 export def KERN_FILE: u32			= 15; // struct: file entries
     35 export def KERN_PROF: u32			= 16; // node: kernel profiling info
     36 export def KERN_POSIX1: u32			= 17; // int: POSIX.1 version
     37 export def KERN_NGROUPS: u32			= 18; // int: # of supplemental group ids
     38 export def KERN_JOB_CONTROL: u32		= 19; // int: is job control available
     39 export def KERN_SAVED_IDS: u32			= 20; // int: saved set-user/group-ID
     40 export def KERN_OBOOTTIME: u32			= 21; // struct: time kernel was booted
     41 export def KERN_DOMAINNAME: u32			= 22; // string: (YP) domainname
     42 export def KERN_MAXPARTITIONS: u32		= 23; // int: number of partitions/disk
     43 export def KERN_RAWPARTITION: u32		= 24; // int: raw partition number
     44 export def KERN_NTPTIME: u32			= 25; // struct: extended-precision time
     45 export def KERN_TIMEX: u32			= 26; // struct: ntp timekeeping state
     46 export def KERN_AUTONICETIME: u32		= 27; // int: proc time before autonice
     47 export def KERN_AUTONICEVAL: u32		= 28; // int: auto nice value
     48 export def KERN_RTC_OFFSET: u32			= 29; // int: offset of rtc from gmt
     49 export def KERN_ROOT_DEVICE: u32		= 30; // string: root device
     50 export def KERN_MSGBUFSIZE: u32			= 31; // int: max # of chars in msg buffer
     51 export def KERN_FSYNC: u32			= 32; // int: file synchronization support
     52 export def KERN_OLDSYSVMSG: u32			= 33; // old: SysV message queue support
     53 export def KERN_OLDSYSVSEM: u32			= 34; // old: SysV semaphore support
     54 export def KERN_OLDSYSVSHM: u32			= 35; // old: SysV shared memory support
     55 export def KERN_OLDSHORTCORENAME: u32		= 36; // old, unimplemented
     56 export def KERN_SYNCHRONIZED_IO: u32		= 37; // int: POSIX synchronized I/O
     57 export def KERN_IOV_MAX: u32			= 38; // int: max iovec's for readv(2) etc.
     58 export def KERN_MBUF: u32			= 39; // node: mbuf parameters
     59 export def KERN_MAPPED_FILES: u32		= 40; // int: POSIX memory mapped files
     60 export def KERN_MEMLOCK: u32			= 41; // int: POSIX memory locking
     61 export def KERN_MEMLOCK_RANGE: u32		= 42; // int: POSIX memory range locking
     62 export def KERN_MEMORY_PROTECTION: u32		= 43; // int: POSIX memory protections
     63 export def KERN_LOGIN_NAME_MAX: u32		= 44; // int: max length login name + NUL
     64 export def KERN_DEFCORENAME: u32		= 45; // old: sort core name format
     65 export def KERN_LOGSIGEXIT: u32			= 46; // int: log signaled processes
     66 export def KERN_PROC2: u32			= 47; // struct: process entries
     67 export def KERN_PROC_ARGS: u32			= 48; // struct: process argv/env
     68 export def KERN_FSCALE: u32			= 49; // int: fixpt FSCALE
     69 export def KERN_CCPU: u32			= 50; // old: fixpt ccpu
     70 export def KERN_CP_TIME: u32			= 51; // struct: CPU time counters
     71 export def KERN_OLDSYSVIPC_INFO: u32		= 52; // old: number of valid kern ids
     72 export def KERN_MSGBUF: u32			= 53; // kernel message buffer
     73 export def KERN_CONSDEV: u32			= 54; // dev_t: console terminal device
     74 export def KERN_MAXPTYS: u32			= 55; // int: maximum number of ptys
     75 export def KERN_PIPE: u32			= 56; // node: pipe limits
     76 export def KERN_MAXPHYS: u32			= 57; // int: kernel value of MAXPHYS
     77 export def KERN_SBMAX: u32			= 58; // int: max socket buffer size
     78 export def KERN_TKSTAT: u32			= 59; // tty in/out counters
     79 export def KERN_MONOTONIC_CLOCK: u32		= 60; // int: POSIX monotonic clock
     80 export def KERN_URND: u32			= 61; // int: random integer from urandom
     81 export def KERN_LABELSECTOR: u32		= 62; // int: disklabel sector
     82 export def KERN_LABELOFFSET: u32		= 63; // int: offset of label within sector
     83 export def KERN_LWP: u32			= 64; // struct: lwp entries
     84 export def KERN_FORKFSLEEP: u32			= 65; // int: sleep length on failed fork
     85 export def KERN_POSIX_THREADS: u32		= 66; // int: POSIX Threads option
     86 export def KERN_POSIX_SEMAPHORES: u32		= 67; // int: POSIX Semaphores option
     87 export def KERN_POSIX_BARRIERS: u32		= 68; // int: POSIX Barriers option
     88 export def KERN_POSIX_TIMERS: u32		= 69; // int: POSIX Timers option
     89 export def KERN_POSIX_SPIN_LOCKS: u32		= 70; // int: POSIX Spin Locks option
     90 export def KERN_POSIX_READER_WRITER_LOCKS: u32	= 71; // int: POSIX R/W Locks option
     91 export def KERN_DUMP_ON_PANIC: u32		= 72; // int: dump on panic
     92 export def KERN_SOMAXKVA: u32			= 73; // int: max socket kernel virtual mem
     93 export def KERN_ROOT_PARTITION: u32		= 74; // int: root partition
     94 export def KERN_DRIVERS: u32			= 75; // struct: driver names and majors #s
     95 export def KERN_BUF: u32			= 76; // struct: buffers
     96 export def KERN_FILE2: u32			= 77; // struct: file entries
     97 export def KERN_VERIEXEC: u32			= 78; // node: verified exec
     98 export def KERN_CP_ID: u32			= 79; // struct: cpu id numbers
     99 export def KERN_HARDCLOCK_TICKS: u32		= 80; // int: number of hardclock ticks
    100 export def KERN_ARND: u32			= 81; // void *buf, size_t siz random
    101 export def KERN_SYSVIPC: u32			= 82; // node: SysV IPC parameters
    102 export def KERN_BOOTTIME: u32			= 83; // struct: time kernel was booted
    103 export def KERN_EVCNT: u32			= 84; // struct: evcnts
    104 export def KERN_SOFIXEDBUF: u32			= 85; // bool: fixed socket buffer sizes
    105 export def KERN_PROC_ALL: u32			= 0; // everything
    106 export def KERN_PROC_PID: u32			= 1; // by process id
    107 export def KERN_PROC_PGRP: u32			= 2; // by process group id
    108 export def KERN_PROC_SESSION: u32		= 3; // by session of pid
    109 export def KERN_PROC_TTY: u32			= 4; // by controlling tty
    110 export def KERN_PROC_UID: u32			= 5; // by effective uid
    111 export def KERN_PROC_RUID: u32			= 6; // by real uid
    112 export def KERN_PROC_GID: u32			= 7; // by effective gid
    113 export def KERN_PROC_RGID: u32			= 8; // by real gid
    114 export def KERN_PROC_TTY_NODEV: u32		= NODEV: u32; // no controlling tty
    115 export def KERN_PROC_TTY_REVOKE: u32		= -2; // revoked tty
    116 export def KERN_PROC_ARGV: u32			= 1; // argv
    117 export def KERN_PROC_NARGV: u32			= 2; // number of strings in above
    118 export def KERN_PROC_ENV: u32			= 3; // environ
    119 export def KERN_PROC_NENV: u32			= 4; // number of strings in above
    120 export def KERN_PROC_PATHNAME: u32		= 5; // path to executable
    121 export def KERN_PROC_CWD: u32			= 6; // current working dir
    122 export def KERN_SYSVIPC_INFO: u32		= 1; // struct: number of valid kern ids
    123 export def KERN_SYSVIPC_MSG: u32		= 2; // int: SysV message queue support
    124 export def KERN_SYSVIPC_SEM: u32		= 3; // int: SysV semaphore support
    125 export def KERN_SYSVIPC_SHM: u32		= 4; // int: SysV shared memory support
    126 export def KERN_SYSVIPC_SHMMAX: u32		= 5; // int: max shared memory segment size (bytes)
    127 export def KERN_SYSVIPC_SHMMNI: u32		= 6; // int: max number of shared memory identifiers
    128 export def KERN_SYSVIPC_SHMSEG: u32		= 7; // int: max shared memory segments per process
    129 export def KERN_SYSVIPC_SHMMAXPGS: u32		= 8; // int: max amount of shared memory (pages)
    130 export def KERN_SYSVIPC_SHMUSEPHYS: u32		= 9; // int: physical memory usage
    131 export def KERN_SYSVIPC_MSG_INFO: u32		= 4; // msginfo and msgid_ds
    132 export def KERN_SYSVIPC_SEM_INFO: u32		= 5; // seminfo and semid_ds
    133 export def KERN_SYSVIPC_SHM_INFO: u32		= 6; // shminfo and shmid_ds
    134 export def KERN_TKSTAT_NIN: u32			= 1; // total input character
    135 export def KERN_TKSTAT_NOUT: u32		= 2; // total output character
    136 export def KERN_TKSTAT_CANCC: u32		= 3; // canonical input character
    137 export def KERN_TKSTAT_RAWCC: u32		= 4; // raw input character
    138 export def KERN_BUF_ALL: u32			= 0; // all buffers
    139 export def KERN_BUFSLOP: u32			= 20;
    140 export def KERN_FILE_BYFILE: u32		= 1;
    141 export def KERN_FILE_BYPID: u32			= 2;
    142 export def KERN_FILESLOP: u32			= 10;
    143 export def KERN_EVCNT_COUNT_ANY: u32		= 0;
    144 export def KERN_EVCNT_COUNT_NONZERO: u32	= 1;
    145 
    146 export def HW_MACHINE: u32			= 1; // string: machine class
    147 export def HW_MODEL: u32			= 2; // string: specific machine model
    148 export def HW_NCPU: u32				= 3; // int: number of cpus
    149 export def HW_BYTEORDER: u32			= 4; // int: machine byte order
    150 export def HW_PHYSMEM: u32			= 5; // int: total memory (bytes)
    151 export def HW_USERMEM: u32			= 6; // int: non-kernel memory (bytes)
    152 export def HW_PAGESIZE: u32			= 7; // int: software page size
    153 export def HW_DISKNAMES: u32			= 8; // string: disk drive names
    154 export def HW_IOSTATS: u32			= 9; // struct: iostats[]
    155 export def HW_MACHINE_ARCH: u32			= 10; // string: machine architecture
    156 export def HW_ALIGNBYTES: u32			= 11; // int: ALIGNBYTES for the kernel
    157 export def HW_CNMAGIC: u32			= 12; // string: console magic sequence(s)
    158 export def HW_PHYSMEM64: u32			= 13; // quad: total memory (bytes)
    159 export def HW_USERMEM64: u32			= 14; // quad: non-kernel memory (bytes)
    160 export def HW_IOSTATNAMES: u32			= 15; // string: iostat names
    161 export def HW_NCPUONLINE: u32			= 16; // number CPUs online
    162 
    163 export def USER_CS_PATH: u32			= 1; // string: _CS_PATH
    164 export def USER_BC_BASE_MAX: u32		= 2; // int: BC_BASE_MAX
    165 export def USER_BC_DIM_MAX: u32			= 3; // int: BC_DIM_MAX
    166 export def USER_BC_SCALE_MAX: u32		= 4; // int: BC_SCALE_MAX
    167 export def USER_BC_STRING_MAX: u32		= 5; // int: BC_STRING_MAX
    168 export def USER_COLL_WEIGHTS_MAX: u32		= 6; // int: COLL_WEIGHTS_MAX
    169 export def USER_EXPR_NEST_MAX: u32		= 7; // int: EXPR_NEST_MAX
    170 export def USER_LINE_MAX: u32			= 8; // int: LINE_MAX
    171 export def USER_RE_DUP_MAX: u32			= 9; // int: RE_DUP_MAX
    172 export def USER_POSIX2_VERSION: u32		= 10; // int: POSIX2_VERSION
    173 export def USER_POSIX2_C_BIND: u32		= 11; // int: POSIX2_C_BIND
    174 export def USER_POSIX2_C_DEV: u32		= 12; // int: POSIX2_C_DEV
    175 export def USER_POSIX2_CHAR_TERM: u32		= 13; // int: POSIX2_CHAR_TERM
    176 export def USER_POSIX2_FORT_DEV: u32		= 14; // int: POSIX2_FORT_DEV
    177 export def USER_POSIX2_FORT_RUN: u32		= 15; // int: POSIX2_FORT_RUN
    178 export def USER_POSIX2_LOCALEDEF: u32		= 16; // int: POSIX2_LOCALEDEF
    179 export def USER_POSIX2_SW_DEV: u32		= 17; // int: POSIX2_SW_DEV
    180 export def USER_POSIX2_UPE: u32			= 18; // int: POSIX2_UPE
    181 export def USER_STREAM_MAX: u32			= 19; // int: POSIX2_STREAM_MAX
    182 export def USER_TZNAME_MAX: u32			= 20; // int: _POSIX_TZNAME_MAX
    183 export def USER_ATEXIT_MAX: u32			= 21; // int: {ATEXIT_MAX}
    184 
    185 export def PROC_CURPROC: u32			= ~(1 << 31);
    186 export def PROC_PID_CORENAME: u32		= 1;
    187 export def PROC_PID_LIMIT: u32			= 2;
    188 export def PROC_PID_STOPFORK: u32		= 3;
    189 export def PROC_PID_STOPEXEC: u32		= 4;
    190 export def PROC_PID_STOPEXIT: u32		= 5;
    191 export def PROC_PID_PAXFLAGS: u32		= 6;
    192 export def PROC_PID_LIMIT_CPU: u32		= (RLIMIT_CPU+1): u32;
    193 export def PROC_PID_LIMIT_FSIZE: u32		= (RLIMIT_FSIZE+1): u32;
    194 export def PROC_PID_LIMIT_DATA: u32		= (RLIMIT_DATA+1): u32;
    195 export def PROC_PID_LIMIT_STACK: u32		= (RLIMIT_STACK+1): u32;
    196 export def PROC_PID_LIMIT_CORE: u32		= (RLIMIT_CORE+1): u32;
    197 export def PROC_PID_LIMIT_RSS: u32		= (RLIMIT_RSS+1): u32;
    198 export def PROC_PID_LIMIT_MEMLOCK: u32		= (RLIMIT_MEMLOCK+1): u32;
    199 export def PROC_PID_LIMIT_NPROC: u32		= (RLIMIT_NPROC+1): u32;
    200 export def PROC_PID_LIMIT_NOFILE: u32		= (RLIMIT_NOFILE+1): u32;
    201 export def PROC_PID_LIMIT_SBSIZE: u32		= (RLIMIT_SBSIZE+1): u32;
    202 export def PROC_PID_LIMIT_AS: u32		= (RLIMIT_AS+1): u32;
    203 export def PROC_PID_LIMIT_NTHR: u32		= (RLIMIT_NTHR+1): u32;
    204 export def PROC_PID_LIMIT_TYPE_SOFT: u32	= 1;
    205 export def PROC_PID_LIMIT_TYPE_HARD: u32	= 2;
    206 
    207 export def EMUL_LINUX: u32			= 1;
    208 export def EMUL_LINUX32: u32			= 5;