1 /** 2 * D header file for Darwin sys/sysctl.h 3 * 4 * Copyright: Copyright © 2021, The D Language Foundation 5 * License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>. 6 * Authors: Iain Buclaw 7 */ 8 module core.sys.darwin.sys.sysctl; 9 10 version (OSX) 11 version = Darwin; 12 else version (iOS) 13 version = Darwin; 14 else version (TVOS) 15 version = Darwin; 16 else version (WatchOS) 17 version = Darwin; 18 19 version (Darwin): 20 extern (C): 21 nothrow: 22 @nogc: 23 24 // Top-level identifiers 25 enum 26 { 27 CTL_UNSPEC = 0, 28 CTL_KERN = 1, 29 CTL_VM = 2, 30 CTL_VFS = 3, 31 CTL_NET = 4, 32 CTL_DEBUG = 5, 33 CTL_HW = 6, 34 CTL_MACHDEP = 7, 35 CTL_USER = 8, 36 CTL_MAXID = 9, 37 } 38 39 // CTL_KERN identifiers 40 enum 41 { 42 KERN_OSTYPE = 1, 43 KERN_OSRELEASE = 2, 44 KERN_OSREV = 3, 45 KERN_VERSION = 4, 46 KERN_MAXVNODES = 5, 47 KERN_MAXPROC = 6, 48 KERN_MAXFILES = 7, 49 KERN_ARGMAX = 8, 50 KERN_SECURELVL = 9, 51 KERN_HOSTNAME = 10, 52 KERN_HOSTID = 11, 53 KERN_CLOCKRATE = 12, 54 KERN_VNODE = 13, 55 KERN_PROC = 14, 56 KERN_FILE = 15, 57 KERN_PROF = 16, 58 KERN_POSIX1 = 17, 59 KERN_NGROUPS = 18, 60 KERN_JOB_CONTROL = 19, 61 KERN_SAVED_IDS = 20, 62 KERN_BOOTTIME = 21, 63 KERN_NISDOMAINNAME = 22, 64 KERN_DOMAINNAME = KERN_NISDOMAINNAME, 65 KERN_MAXPARTITIONS = 23, 66 KERN_KDEBUG = 24, 67 KERN_UPDATEINTERVAL = 25, 68 KERN_OSRELDATE = 26, 69 KERN_NTP_PLL = 27, 70 KERN_BOOTFILE = 28, 71 KERN_MAXFILESPERPROC = 29, 72 KERN_MAXPROCPERUID = 30, 73 KERN_DUMPDEV = 31, 74 KERN_IPC = 32, 75 KERN_DUMMY = 33, 76 KERN_PS_STRINGS = 34, 77 KERN_USRSTACK32 = 35, 78 KERN_LOGSIGEXIT = 36, 79 KERN_SYMFILE = 37, 80 KERN_PROCARGS = 38, 81 KERN_NETBOOT = 40, 82 KERN_SYSV = 42, 83 KERN_AFFINITY = 43, 84 KERN_TRANSLATE = 44, 85 KERN_CLASSIC = KERN_TRANSLATE, 86 KERN_EXEC = 45, 87 KERN_CLASSICHANDLER = KERN_EXEC, 88 KERN_AIOMAX = 46, 89 KERN_AIOPROCMAX = 47, 90 KERN_AIOTHREADS = 48, 91 KERN_PROCARGS2 = 49, 92 KERN_COREFILE = 50, 93 KERN_COREDUMP = 51, 94 KERN_SUGID_COREDUMP = 52, 95 KERN_PROCDELAYTERM = 53, 96 KERN_SHREG_PRIVATIZABLE = 54, 97 KERN_LOW_PRI_WINDOW = 56, 98 KERN_LOW_PRI_DELAY = 57, 99 KERN_POSIX = 58, 100 KERN_USRSTACK64 = 59, 101 KERN_NX_PROTECTION = 60, 102 KERN_TFP = 61, 103 KERN_PROCNAME = 62, 104 KERN_THALTSTACK = 63, 105 KERN_SPECULATIVE_READS = 64, 106 KERN_OSVERSION = 65, 107 KERN_SAFEBOOT = 66, 108 KERN_RAGEVNODE = 68, 109 KERN_TTY = 69, 110 KERN_CHECKOPENEVT = 70, 111 KERN_THREADNAME = 71, 112 KERN_MAXID = 72, 113 } 114 115 // KERN_RAGEVNODE types 116 enum 117 { 118 KERN_RAGE_PROC = 1, 119 KERN_RAGE_THREAD = 2, 120 KERN_UNRAGE_PROC = 3, 121 KERN_UNRAGE_THREAD = 4, 122 } 123 124 // KERN_OPENEVT types 125 enum 126 { 127 KERN_OPENEVT_PROC = 1, 128 KERN_UNOPENEVT_PROC = 2, 129 } 130 131 // KERN_TFP types 132 enum 133 { 134 KERN_TFP_POLICY = 1, 135 } 136 137 // KERN_TFP_POLICY values 138 enum 139 { 140 KERN_TFP_POLICY_DENY = 0, 141 KERN_TFP_POLICY_DEFAULT = 2, 142 } 143 144 // KERN_PROC subtypes 145 enum 146 { 147 KERN_PROC_ALL = 0, 148 KERN_PROC_PID = 1, 149 KERN_PROC_PGRP = 2, 150 KERN_PROC_SESSION = 3, 151 KERN_PROC_TTY = 4, 152 KERN_PROC_UID = 5, 153 KERN_PROC_RUID = 6, 154 KERN_PROC_LCID = 7, 155 } 156 157 // KERN_VFSNSPACE subtypes 158 enum 159 { 160 KERN_VFSNSPACE_HANDLE_PROC = 1, 161 KERN_VFSNSPACE_UNHANDLE_PROC = 2, 162 } 163 164 // KERN_IPC identifiers 165 enum 166 { 167 KIPC_MAXSOCKBUF = 1, 168 KIPC_SOCKBUF_WASTE = 2, 169 KIPC_SOMAXCONN = 3, 170 KIPC_MAX_LINKHDR = 4, 171 KIPC_MAX_PROTOHDR = 5, 172 KIPC_MAX_HDR = 6, 173 KIPC_MAX_DATALEN = 7, 174 KIPC_MBSTAT = 8, 175 KIPC_NMBCLUSTERS = 9, 176 KIPC_SOQLIMITCOMPAT = 10, 177 } 178 179 // CTL_VM identifiers 180 enum 181 { 182 VM_METER = 1, 183 VM_LOADAVG = 2, 184 VM_MACHFACTOR = 4, 185 VM_SWAPUSAGE = 5, 186 VM_MAXID = 6, 187 } 188 189 // CTL_HW identifiers 190 enum 191 { 192 HW_MACHINE = 1, 193 HW_MODEL = 2, 194 HW_NCPU = 3, 195 HW_BYTEORDER = 4, 196 HW_PHYSMEM = 5, 197 HW_USERMEM = 6, 198 HW_PAGESIZE = 7, 199 HW_DISKNAMES = 8, 200 HW_DISKSTATS = 9, 201 HW_EPOCH = 10, 202 HW_FLOATINGPT = 11, 203 HW_MACHINE_ARCH = 12, 204 HW_VECTORUNIT = 13, 205 HW_BUS_FREQ = 14, 206 HW_CPU_FREQ = 15, 207 HW_CACHELINE = 16, 208 HW_L1ICACHESIZE = 17, 209 HW_L1DCACHESIZE = 18, 210 HW_L2SETTINGS = 19, 211 HW_L2CACHESIZE = 20, 212 HW_L3SETTINGS = 21, 213 HW_L3CACHESIZE = 22, 214 HW_TB_FREQ = 23, 215 HW_MEMSIZE = 24, 216 HW_AVAILCPU = 25, 217 HW_MAXID = 26, 218 } 219 220 // CTL_USER identifiers 221 enum 222 { 223 USER_CS_PATH = 1, 224 USER_BC_BASE_MAX = 2, 225 USER_BC_DIM_MAX = 3, 226 USER_BC_SCALE_MAX = 4, 227 USER_BC_STRING_MAX = 5, 228 USER_COLL_WEIGHTS_MAX = 6, 229 USER_EXPR_NEST_MAX = 7, 230 USER_LINE_MAX = 8, 231 USER_RE_DUP_MAX = 9, 232 USER_POSIX2_VERSION = 10, 233 USER_POSIX2_C_BIND = 11, 234 USER_POSIX2_C_DEV = 12, 235 USER_POSIX2_CHAR_TERM = 13, 236 USER_POSIX2_FORT_DEV = 14, 237 USER_POSIX2_FORT_RUN = 15, 238 USER_POSIX2_LOCALEDEF = 16, 239 USER_POSIX2_SW_DEV = 17, 240 USER_POSIX2_UPE = 18, 241 USER_STREAM_MAX = 19, 242 USER_TZNAME_MAX = 20, 243 USER_MAXID = 21, 244 } 245 246 /// 247 int sysctl(const int* name, uint namelen, void* oldp, size_t* oldlenp, 248 const void* newp, size_t newlen); 249 /// 250 int sysctlbyname(const char* name, void* oldp, size_t* oldlenp, 251 const void* newp, size_t newlen); 252 /// 253 int sysctlnametomib(const char* sname, int* name, size_t* namelenp);