diff options
Diffstat (limited to 'src/arch/posix/driver/uptime.cc')
-rw-r--r-- | src/arch/posix/driver/uptime.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/arch/posix/driver/uptime.cc b/src/arch/posix/driver/uptime.cc index 040b51c..00b1d34 100644 --- a/src/arch/posix/driver/uptime.cc +++ b/src/arch/posix/driver/uptime.cc @@ -1,11 +1,25 @@ #include "driver/uptime.h" #include <time.h> -uint64_t Uptime::get() +uint64_t Uptime::get_s() { struct timespec ts; clock_gettime(CLOCK_REALTIME, &ts); - return (uint64_t)ts.tv_nsec + (1000000ULL * ((uint64_t)ts.tv_sec % 256)); + return ts.tv_sec; +} + +uint64_t Uptime::get_us() +{ + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + return ts.tv_nsec / 1000; +} + +uint64_t Uptime::get_cycles() +{ + struct timespec ts; + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts); + return ts.tv_nsec; } Uptime uptime; |