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