From 68581b009f6e943bd6ddf3c781db1c884832fa8e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 21 Jan 2015 10:28:52 +0100 Subject: [PATCH] unix/cputime.c: Cache sc_clk_tck and check it for sanity. --- ChangeLog | 5 +++++ grub-core/osdep/unix/cputime.c | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f9ac59915..4b9f9b21a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-01-20 Vladimir Serbinenko + + * grub-core/osdep/unix/cputime.c (grub_util_get_cpu_time_ms): Cache + sc_clk_tck and check it for sanity. + 2015-01-20 Vladimir Serbinenko * grub-core/kern/efi/mm.c (grub_efi_get_memory_map): Never return a diff --git a/grub-core/osdep/unix/cputime.c b/grub-core/osdep/unix/cputime.c index 47e3abc77..cff359a3b 100644 --- a/grub-core/osdep/unix/cputime.c +++ b/grub-core/osdep/unix/cputime.c @@ -9,7 +9,14 @@ grub_uint64_t grub_util_get_cpu_time_ms (void) { struct tms tm; + static long sc_clk_tck; + if (!sc_clk_tck) + { + sc_clk_tck = sysconf(_SC_CLK_TCK); + if (sc_clk_tck <= 0) + sc_clk_tck = 1000; + } times (&tm); - return (tm.tms_utime * 1000ULL) / sysconf(_SC_CLK_TCK); + return (tm.tms_utime * 1000ULL) / sc_clk_tck; }