aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Davidson <colrdavidson@gmail.com>2023-02-21 06:46:36 -0800
committerColin Davidson <colrdavidson@gmail.com>2023-02-21 06:46:36 -0800
commit91dccf8d6240e140f96b3ea29bd9b3fc1e69734c (patch)
tree437d0e709b48e40b470002486ed2f5c6cc116cd0
parent1fc3a25f4727d86bbe1e6adbe47dc18f70b32ff7 (diff)
more function name changes
-rw-r--r--core/time/perf.odin6
-rw-r--r--core/time/tsc_darwin.odin18
-rw-r--r--core/time/tsc_linux.odin50
-rw-r--r--core/time/tsc_windows.odin26
4 files changed, 47 insertions, 53 deletions
diff --git a/core/time/perf.odin b/core/time/perf.odin
index 43bf2e313..6a9933336 100644
--- a/core/time/perf.odin
+++ b/core/time/perf.odin
@@ -54,10 +54,10 @@ when ODIN_ARCH == .amd64 {
_, _, _, edx := intrinsics.x86_cpuid(0x80_000_007, 0)
return (edx & (1 << 8)) != 0
}
+}
- x86_get_tsc_frequency :: proc "contextless" () -> (u64, bool) {
- return _x86_get_tsc_frequency()
- }
+get_tsc_frequency :: proc "contextless" () -> (u64, bool) {
+ return _get_tsc_frequency()
}
/*
diff --git a/core/time/tsc_darwin.odin b/core/time/tsc_darwin.odin
index 6aaac350e..9e54ee8f7 100644
--- a/core/time/tsc_darwin.odin
+++ b/core/time/tsc_darwin.odin
@@ -9,15 +9,13 @@ foreign libc {
@(link_name="sysctlbyname") _sysctlbyname :: proc(path: cstring, oldp: rawptr, oldlenp: rawptr, newp: rawptr, newlen: int) -> c.int ---
}
-when ODIN_ARCH == .amd64 {
- _x86_get_tsc_frequency :: proc "contextless" () -> (u64, bool) {
- tmp_freq : u64 = 0
- tmp_size : i64 = size_of(tmp_freq)
- ret := _sysctlbyname("machdep.tsc.frequency", &tmp_freq, &tmp_size, nil, 0)
- if ret < 0 {
- return 0, false
- }
-
- return tmp_freq, true
+_get_tsc_frequency :: proc "contextless" () -> (u64, bool) {
+ tmp_freq : u64 = 0
+ tmp_size : i64 = size_of(tmp_freq)
+ ret := _sysctlbyname("machdep.tsc.frequency", &tmp_freq, &tmp_size, nil, 0)
+ if ret < 0 {
+ return 0, false
}
+
+ return tmp_freq, true
}
diff --git a/core/time/tsc_linux.odin b/core/time/tsc_linux.odin
index e355bc5b5..c5f2902e9 100644
--- a/core/time/tsc_linux.odin
+++ b/core/time/tsc_linux.odin
@@ -5,33 +5,31 @@ package time
import "core:intrinsics"
import "core:sys/unix"
-when ODIN_ARCH == .amd64 {
- _x86_get_tsc_frequency :: proc "contextless" () -> (u64, bool) {
- perf_attr := unix.Perf_Event_Attr{}
- perf_attr.type = u32(unix.Perf_Type_Id.Hardware)
- perf_attr.config = u64(unix.Perf_Hardware_Id.Instructions)
- perf_attr.size = size_of(perf_attr)
- perf_attr.flags = {.Disabled, .Exclude_Kernel, .Exclude_HV}
- fd := unix.sys_perf_event_open(&perf_attr, 0, -1, -1, 0)
- if fd == -1 {
- return 0, false
- }
- defer unix.sys_close(fd)
-
- page_size : uint = 4096
- ret := unix.sys_mmap(nil, page_size, unix.PROT_READ, unix.MAP_SHARED, fd, 0)
- if ret < 0 && ret > -4096 {
- return 0, false
- }
- addr := rawptr(uintptr(ret))
- defer unix.sys_munmap(addr, page_size)
+_get_tsc_frequency :: proc "contextless" () -> (u64, bool) {
+ perf_attr := unix.Perf_Event_Attr{}
+ perf_attr.type = u32(unix.Perf_Type_Id.Hardware)
+ perf_attr.config = u64(unix.Perf_Hardware_Id.Instructions)
+ perf_attr.size = size_of(perf_attr)
+ perf_attr.flags = {.Disabled, .Exclude_Kernel, .Exclude_HV}
+ fd := unix.sys_perf_event_open(&perf_attr, 0, -1, -1, 0)
+ if fd == -1 {
+ return 0, false
+ }
+ defer unix.sys_close(fd)
- event_page := (^unix.Perf_Event_mmap_Page)(addr)
- if .User_Time not_in event_page.cap.flags {
- return 0, false
- }
+ page_size : uint = 4096
+ ret := unix.sys_mmap(nil, page_size, unix.PROT_READ, unix.MAP_SHARED, fd, 0)
+ if ret < 0 && ret > -4096 {
+ return 0, false
+ }
+ addr := rawptr(uintptr(ret))
+ defer unix.sys_munmap(addr, page_size)
- frequency := u64((u128(1_000_000_000) << u128(event_page.time_shift)) / u128(event_page.time_mult))
- return frequency, true
+ event_page := (^unix.Perf_Event_mmap_Page)(addr)
+ if .User_Time not_in event_page.cap.flags {
+ return 0, false
}
+
+ frequency := u64((u128(1_000_000_000) << u128(event_page.time_shift)) / u128(event_page.time_mult))
+ return frequency, true
}
diff --git a/core/time/tsc_windows.odin b/core/time/tsc_windows.odin
index 761a3b1cd..a1707f982 100644
--- a/core/time/tsc_windows.odin
+++ b/core/time/tsc_windows.odin
@@ -5,22 +5,20 @@ package time
import "core:intrinsics"
import win32 "core:sys/windows"
-when ODIN_ARCH == .amd64 {
- _x86_get_tsc_frequency :: proc "contextless" () -> (u64, bool) {
- qpc_begin: win32.LARGE_INTEGER
- win32.QueryPerformanceCounter(&qpc_begin)
- tsc_begin := intrinsics.read_cycle_counter()
+_get_tsc_frequency :: proc "contextless" () -> (u64, bool) {
+ qpc_begin: win32.LARGE_INTEGER
+ win32.QueryPerformanceCounter(&qpc_begin)
+ tsc_begin := intrinsics.read_cycle_counter()
- win32.Sleep(2)
+ win32.Sleep(2)
- qpc_end: win32.LARGE_INTEGER
- win32.QueryPerformanceCounter(&qpc_end)
- tsc_end := intrinsics.read_cycle_counter()
+ qpc_end: win32.LARGE_INTEGER
+ win32.QueryPerformanceCounter(&qpc_end)
+ tsc_end := intrinsics.read_cycle_counter()
- qpc_frequency: win32.LARGE_INTEGER
- win32.QueryPerformanceFrequency(&qpc_frequency)
+ qpc_frequency: win32.LARGE_INTEGER
+ win32.QueryPerformanceFrequency(&qpc_frequency)
- frequency = u64((u128(tsc_end - tsc_begin) * u128(qpc_frequency)) / u128(qpc_end - qpc_begin))
- return frequency, true
- }
+ frequency = u64((u128(tsc_end - tsc_begin) * u128(qpc_frequency)) / u128(qpc_end - qpc_begin))
+ return frequency, true
}