37 lines
732 B
C
37 lines
732 B
C
|
|
ulong tmr_time() {
|
|
struct timespec tm;
|
|
if(clock_gettime((clockid_t)sys.tmr_timer, &tm)) {
|
|
return 0ULL;
|
|
}
|
|
return tm.tv_sec * 1000000ULL + tm.tv_nsec / 1000ULL;
|
|
}
|
|
|
|
ulong tmr_ntime() {
|
|
struct timespec tm;
|
|
if(clock_gettime((clockid_t)sys.tmr_timer, &tm)) {
|
|
return 0ULL;
|
|
}
|
|
return tm.tv_sec * 1000000000ULL + tm.tv_nsec;
|
|
}
|
|
|
|
ulong tmr_rtime() {
|
|
return tmr_time() - sys.tmr_start;
|
|
}
|
|
|
|
double tmr_ftime() {
|
|
return ((double)tmr_rtime()) / 1000000.0;
|
|
}
|
|
|
|
clockid_t tmr_gettimer() {
|
|
struct timespec tm;
|
|
clockid_t timer = CLOCK_MONOTONIC_RAW;
|
|
if(clock_gettime(timer, &tm)) {
|
|
timer = CLOCK_MONOTONIC;
|
|
if(clock_gettime(timer, &tm)) {
|
|
timer = CLOCK_REALTIME;
|
|
sys_assert(!clock_gettime(timer, &tm))
|
|
}
|
|
}
|
|
return timer;
|
|
}
|