12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- //+build openbsd
- package unix
- import "core:c"
- foreign import libc "system:c"
- @(default_calling_convention="c")
- foreign libc {
- @(link_name="sysctl") _unix_sysctl :: proc(name: [^]i32, namelen: u32, oldp: rawptr, oldlenp: ^c.size_t, newp: rawptr, newlen: c.size_t) -> i32 ---
- }
- sysctl :: proc(mib: []i32, val: ^$T) -> (ok: bool) {
- mib := mib
- result_size := c.size_t(size_of(T))
- res := _unix_sysctl(raw_data(mib), u32(len(mib)), val, &result_size, nil, 0)
- return res == 0
- }
- // See /usr/include/sys/sysctl.h for details
- CTL_SYSCTL :: 0
- CTL_KERN :: 1
- KERN_OSTYPE :: 1
- KERN_OSRELEASE :: 2
- KERN_OSREV :: 3
- KERN_VERSION :: 4
- CTL_VM :: 2
- CTL_FS :: 3
- CTL_NET :: 4
- CTL_DEBUG :: 5
- CTL_HW :: 6
- HW_MACHINE :: 1
- HW_MODEL :: 2
- HW_NCPU :: 3
- HW_BYTEORDER :: 4
- HW_PHYSMEM :: 5
- HW_USERMEM :: 6
- HW_PAGESIZE :: 7
- HW_DISKNAMES :: 8
- HW_DISKSTATS :: 9
- HW_DISKCOUNT :: 10
- HW_SENSORS :: 11
- HW_CPUSPEED :: 12
- HW_SETPERF :: 13
- HW_VENDOR :: 14
- HW_PRODUCT :: 15
- HW_VERSION :: 16
- HW_SERIALNO :: 17
- HW_UUID :: 18
- HW_PHYSMEM64 :: 19
|