diff options
Diffstat (limited to 'driver/gator_main.c')
-rw-r--r-- | driver/gator_main.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/driver/gator_main.c b/driver/gator_main.c index 0d867f2..2841203 100644 --- a/driver/gator_main.c +++ b/driver/gator_main.c @@ -812,19 +812,26 @@ static void gator_summary(void) u64 timestamp, uptime; struct timespec ts; char uname_buf[512]; - void (*m2b)(struct timespec *ts); snprintf(uname_buf, sizeof(uname_buf), "%s %s %s %s %s GNU/Linux", utsname()->sysname, utsname()->nodename, utsname()->release, utsname()->version, utsname()->machine); getnstimeofday(&ts); timestamp = timespec_to_ns(&ts); - do_posix_clock_monotonic_gettime(&ts); - // monotonic_to_bootbased is not defined for some versions of Android - m2b = symbol_get(monotonic_to_bootbased); - if (m2b) { - m2b(&ts); + // Similar to reading /proc/uptime from fs/proc/uptime.c, calculate uptime +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 11, 0) + { + void (*m2b)(struct timespec *ts); + do_posix_clock_monotonic_gettime(&ts); + // monotonic_to_bootbased is not defined for some versions of Android + m2b = symbol_get(monotonic_to_bootbased); + if (m2b) { + m2b(&ts); + } } +#else + get_monotonic_boottime(&ts); +#endif uptime = timespec_to_ns(&ts); // Disable preemption as gator_get_time calls smp_processor_id to verify time is monotonic |