Browse Source

implement bsd's, same as darwin

Laytan 1 year ago
parent
commit
e63d71c23b
1 changed files with 9 additions and 4 deletions
  1. 9 4
      core/prof/spall/spall_unix.odin

+ 9 - 4
core/prof/spall/spall_darwin.odin → core/prof/spall/spall_unix.odin

@@ -1,19 +1,24 @@
 //+private
+//+build darwin, freebsd, openbsd
 package spall
 
 // Only for types.
 import "core:os"
 
-foreign import system "system:System.framework"
+when ODIN_OS == .Darwin {
+	foreign import libc "system:System.framework"
+} else {
+	foreign import libc "system:c"
+}
 
 timespec :: struct {
 	tv_sec:  i64, // seconds
 	tv_nsec: i64, // nanoseconds
 }
 
-foreign system {
-	@(link_name="__error") __error :: proc() -> ^i32 ---
-	@(link_name="write") _unix_write :: proc(handle: os.Handle, buffer: rawptr, count: uint) -> int ---
+foreign libc {
+	__error :: proc() -> ^i32 ---
+	@(link_name="write")         _unix_write         :: proc(handle: os.Handle, buffer: rawptr, count: uint) -> int ---
 	@(link_name="clock_gettime") _unix_clock_gettime :: proc(clock_id: u64, timespec: ^timespec) -> i32 ---
 }