|
@@ -1,20 +1,29 @@
|
|
|
//+build darwin
|
|
|
package unix
|
|
|
|
|
|
-import "core:sys/darwin"
|
|
|
import "base:intrinsics"
|
|
|
|
|
|
+import "core:c"
|
|
|
+import "core:sys/darwin"
|
|
|
+
|
|
|
_ :: darwin
|
|
|
|
|
|
-sysctl :: proc(mib: []i32, val: ^$T) -> (ok: bool) {
|
|
|
- mib := mib
|
|
|
- result_size := i64(size_of(T))
|
|
|
+sysctl :: proc "contextless" (mib: []i32, val: ^$T) -> (ok: bool) {
|
|
|
+ result_size := c.size_t(size_of(T))
|
|
|
+ res := darwin.syscall_sysctl(
|
|
|
+ raw_data(mib), len(mib),
|
|
|
+ val, &result_size,
|
|
|
+ nil, 0,
|
|
|
+ )
|
|
|
+ return res == 0
|
|
|
+}
|
|
|
|
|
|
- res := intrinsics.syscall(
|
|
|
- darwin.unix_offset_syscall(.sysctl),
|
|
|
- uintptr(raw_data(mib)), uintptr(len(mib)),
|
|
|
- uintptr(val), uintptr(&result_size),
|
|
|
- uintptr(0), uintptr(0),
|
|
|
+sysctlbyname :: proc "contextless" (name: string, val: ^$T) -> (ok: bool) {
|
|
|
+ result_size := c.size_t(size_of(T))
|
|
|
+ res := darwin.syscall_sysctlbyname(
|
|
|
+ name,
|
|
|
+ val, &result_size,
|
|
|
+ nil, 0,
|
|
|
)
|
|
|
return res == 0
|
|
|
}
|