diff options
Diffstat (limited to 'osdep/timer-darwin.c')
-rw-r--r-- | osdep/timer-darwin.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/osdep/timer-darwin.c b/osdep/timer-darwin.c index 802e0e52a1..36e719425e 100644 --- a/osdep/timer-darwin.c +++ b/osdep/timer-darwin.c @@ -23,22 +23,25 @@ #include <sys/time.h> #include <mach/mach_time.h> -#include "config.h" #include "common/msg.h" #include "timer.h" -static double timebase_ratio; +static double timebase_ratio_ns; -void mp_sleep_us(int64_t us) +void mp_sleep_ns(int64_t ns) { - uint64_t deadline = us / 1e6 / timebase_ratio + mach_absolute_time(); - + uint64_t deadline = ns / timebase_ratio_ns + mach_absolute_time(); mach_wait_until(deadline); } -uint64_t mp_raw_time_us(void) +uint64_t mp_raw_time_ns(void) +{ + return mp_raw_time_ns_from_mach(mach_absolute_time()); +} + +uint64_t mp_raw_time_ns_from_mach(uint64_t mach_time) { - return mach_absolute_time() * timebase_ratio * 1e6; + return mach_time * timebase_ratio_ns; } void mp_raw_time_init(void) @@ -46,5 +49,5 @@ void mp_raw_time_init(void) struct mach_timebase_info timebase; mach_timebase_info(&timebase); - timebase_ratio = (double)timebase.numer / (double)timebase.denom * 1e-9; + timebase_ratio_ns = (double)timebase.numer / (double)timebase.denom; } |