Files
Odin/core/os/process_freebsd.odin
2026-02-09 16:27:53 +01:00

36 lines
720 B
Odin

#+private
#+build freebsd
package os
import "core:c"
foreign import libc "system:c"
foreign import dl "system:dl"
foreign libc {
@(link_name="sysctlbyname")
_sysctlbyname :: proc(path: cstring, oldp: rawptr, oldlenp: rawptr, newp: rawptr, newlen: int) -> c.int ---
}
foreign dl {
@(link_name="pthread_getthreadid_np")
pthread_getthreadid_np :: proc() -> c.int ---
}
@(require_results)
_get_current_thread_id :: proc "contextless" () -> int {
return int(pthread_getthreadid_np())
}
@(require_results)
_get_processor_core_count :: proc() -> int {
count : int = 0
count_size := size_of(count)
if _sysctlbyname("hw.ncpu", &count, &count_size, nil, 0) == 0 {
if count > 0 {
return count
}
}
return 1
}