X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/3903760236c30e3b5ace7a4eefac3a269d68957c..c6bf4f310a33a9262d455ea4d3f0630b1255e3fe:/libsyscall/wrappers/mach_get_times.c diff --git a/libsyscall/wrappers/mach_get_times.c b/libsyscall/wrappers/mach_get_times.c index 37ddfa9fd..4a8a3f19e 100644 --- a/libsyscall/wrappers/mach_get_times.c +++ b/libsyscall/wrappers/mach_get_times.c @@ -36,7 +36,8 @@ extern uint64_t _mach_continuous_time_base(void); extern int __gettimeofday_with_mach(struct timeval *, struct timezone *, uint64_t *); kern_return_t -mach_get_times(uint64_t* absolute_time, uint64_t* cont_time, struct timespec *tp) { +mach_get_times(uint64_t* absolute_time, uint64_t* cont_time, struct timespec *tp) +{ if (tp == NULL) { return _mach_continuous_time(absolute_time, cont_time); } @@ -63,16 +64,24 @@ mach_get_times(uint64_t* absolute_time, uint64_t* cont_time, struct timespec *tp if (__gettimeofday_with_mach(&tv, NULL, &tbr) < 0) { return KERN_FAILURE; } else if (tbr == 0) { +#if !(TARGET_OS_IPHONE && !TARGET_OS_SIMULATOR) // On an old kernel, likely chroot'ed. (remove next year) tbr = mach_absolute_time(); +#else + __builtin_trap(); +#endif } } continuous_time_base_post = _mach_continuous_time_base(); } while (__builtin_expect(continuous_time_base_prior != continuous_time_base_post, 0)); - if (absolute_time) *absolute_time = tbr; - if (cont_time) *cont_time = continuous_time_base_prior + tbr; + if (absolute_time) { + *absolute_time = tbr; + } + if (cont_time) { + *cont_time = continuous_time_base_prior + tbr; + } tp->tv_sec = tv.tv_sec; tp->tv_nsec = tv.tv_usec * NSEC_PER_USEC;