summaryrefslogtreecommitdiff
path: root/mach.c
diff options
context:
space:
mode:
Diffstat (limited to 'mach.c')
-rw-r--r--mach.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/mach.c b/mach.c
new file mode 100644
index 0000000..35ac3a9
--- /dev/null
+++ b/mach.c
@@ -0,0 +1,20 @@
1#include "mach.h"
2
3/* there is no clock_gettime on MacOS platform */
4int clock_gettime(int clk_id, struct timespec *t)
5{
6 mach_timebase_info_data_t timebase;
7 mach_timebase_info(&timebase);
8
9 uint64_t time;
10
11 time = mach_absolute_time();
12
13 double nseconds = ((double)time * (double)timebase.numer) / ((double)timebase.denom);
14 double seconds = ((double)time * (double)timebase.numer) / ((double)timebase.denom * 1e9);
15
16 t->tv_sec = seconds;
17 t->tv_nsec = nseconds;
18
19 return 0;
20}