aboutsummaryrefslogtreecommitdiff
path: root/core/time/tsc_darwin.odin
blob: 2efd35f200fb84b8d2061bed7d2fbd1c13936f43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#+private
package time

import "base:intrinsics"
@require import "core:sys/unix"

_get_tsc_frequency :: proc "contextless" () -> (freq: u64, ok: bool) {
	when ODIN_ARCH == .amd64 {
		unix.sysctlbyname("machdep.tsc.frequency", &freq) or_return
	} else when ODIN_ARCH == .arm64 {
		freq = u64(intrinsics.read_cycle_counter_frequency())
	} else {
		return
	}
	ok = true
	return
}