diff --git a/core/sys/darwin/darwin.odin b/core/sys/darwin/darwin.odin index 0b3efb1f5..a3e07277c 100644 --- a/core/sys/darwin/darwin.odin +++ b/core/sys/darwin/darwin.odin @@ -1,4 +1,26 @@ //+build darwin package darwin +import "core:c" + Bool :: b8 + +RUsage :: struct { + ru_utime: timeval, + ru_stime: timeval, + ru_maxrss: c.long, + ru_ixrss: c.long, + ru_idrss: c.long, + ru_isrss: c.long, + ru_minflt: c.long, + ru_majflt: c.long, + ru_nswap: c.long, + ru_inblock: c.long, + ru_oublock: c.long, + ru_msgsnd: c.long, + ru_msgrcv: c.long, + ru_nsignals: c.long, + ru_nvcsw: c.long, + ru_nivcsw: c.long, +} + diff --git a/core/sys/darwin/xnu_system_call_wrappers.odin b/core/sys/darwin/xnu_system_call_wrappers.odin index 371d714a9..b69877cc9 100644 --- a/core/sys/darwin/xnu_system_call_wrappers.odin +++ b/core/sys/darwin/xnu_system_call_wrappers.odin @@ -125,7 +125,7 @@ DARWIN_MAXCOMLEN :: 16 /*--==========================================================================--*/ __darwin_ino64_t :: u64 -__darwin_time_t :: u32 +__darwin_time_t :: c.long __darwin_dev_t :: i32 __darwin_mode_t :: u16 __darwin_off_t :: i64 @@ -417,3 +417,7 @@ syscall_chdir :: #force_inline proc "contextless" (path: cstring) -> c.int { syscall_fchdir :: #force_inline proc "contextless" (fd: c.int, path: cstring) -> c.int { return cast(c.int)intrinsics.syscall(unix_offset_syscall(.getentropy), uintptr(fd), transmute(uintptr)path) } + +syscall_getrusage :: #force_inline proc "contextless" (who: c.int, rusage: ^RUsage) -> c.int { + return cast(c.int) intrinsics.syscall(unix_offset_syscall(.getrusage), uintptr(who), uintptr(rusage)) +}