mach.c 549 B

1234567891011121314151617181920212223
  1. #ifdef __MACH__
  2. #include "mach.h"
  3. /* there is no clock_gettime on MacOS platform */
  4. int clock_gettime(int clk_id, struct timespec *t)
  5. {
  6. mach_timebase_info_data_t timebase;
  7. mach_timebase_info(&timebase);
  8. uint64_t time;
  9. time = mach_absolute_time();
  10. double nseconds = ((double)time * (double)timebase.numer) / ((double)timebase.denom);
  11. double seconds = ((double)time * (double)timebase.numer) / ((double)timebase.denom * 1e9);
  12. t->tv_sec = seconds;
  13. t->tv_nsec = nseconds;
  14. return 0;
  15. }
  16. #endif