diff --git a/include/minix/sysutil.h b/include/minix/sysutil.h index c6e4edb33..e596e9635 100644 --- a/include/minix/sysutil.h +++ b/include/minix/sysutil.h @@ -57,6 +57,7 @@ _PROTOTYPE( void util_stacktrace_strcat, (char *)); _PROTOTYPE( int micro_delay, (u32_t micros)); _PROTOTYPE( u32_t tsc_64_to_micros, (u64_t tsc)); _PROTOTYPE( u32_t tsc_to_micros, (u32_t low, u32_t high)); +_PROTOTYPE( u32_t tsc_get_khz, (void)); _PROTOTYPE( u32_t micros_to_ticks, (u32_t micros)); _PROTOTYPE( void ser_putc, (char c)); _PROTOTYPE( void get_randomness, (struct k_randomness *, int)); diff --git a/lib/libsys/tsc_util.c b/lib/libsys/tsc_util.c index dfb1218e0..815d8840f 100644 --- a/lib/libsys/tsc_util.c +++ b/lib/libsys/tsc_util.c @@ -111,3 +111,9 @@ u32_t tsc_to_micros(u32_t low, u32_t high) return micros; } +u32_t tsc_get_khz(void) +{ + CALIBRATE; + + return calib_tsc / (CALIBRATE_TICKS(Hz) * MICROSPERTICK(Hz)) * 1000; +}