Files
c3c/lib7/std/time/os/time_darwin.c3
2025-02-23 13:53:04 +01:00

24 lines
563 B
Plaintext

module std::time::os @if(env::DARWIN);
struct Darwin_mach_timebase_info
{
uint numer;
uint denom;
}
def Darwin_mach_timebase_info_t = Darwin_mach_timebase_info;
def Darwin_mach_timebase_info_data_t = Darwin_mach_timebase_info;
extern fn void mach_timebase_info(Darwin_mach_timebase_info_data_t* timebase);
extern fn ulong mach_absolute_time();
fn Clock native_clock()
{
static Darwin_mach_timebase_info_data_t timebase;
if (!timebase.denom)
{
mach_timebase_info(&timebase);
}
return (Clock)(mach_absolute_time() * timebase.numer / timebase.denom);
}