diff options
Diffstat (limited to 'src/arch/posix')
-rw-r--r-- | src/arch/posix/Makefile.inc | 6 | ||||
-rw-r--r-- | src/arch/posix/driver/uptime.cc | 18 |
2 files changed, 21 insertions, 3 deletions
diff --git a/src/arch/posix/Makefile.inc b/src/arch/posix/Makefile.inc index 7553fd4..03b6f67 100644 --- a/src/arch/posix/Makefile.inc +++ b/src/arch/posix/Makefile.inc @@ -19,7 +19,11 @@ build/system.elf: ${OBJECTS} run: build/system.elf build/system.elf +monitor: run + +program: run + arch_clean: rm -f ${OBJECTS} -.PHONY: arch_clean program +.PHONY: arch_clean monitor program run 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; |