summaryrefslogtreecommitdiffstats
path: root/osdep/timer-darwin.c
diff options
context:
space:
mode:
Diffstat (limited to 'osdep/timer-darwin.c')
-rw-r--r--osdep/timer-darwin.c19
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;
}