unix/cputime.c: Cache sc_clk_tck and check it for sanity.

This commit is contained in:
Vladimir Serbinenko 2015-01-21 10:28:52 +01:00
parent 69aee43fa6
commit 68581b009f
2 changed files with 13 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2015-01-20 Vladimir Serbinenko <phcoder@gmail.com>
* 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 <phcoder@gmail.com> 2015-01-20 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/kern/efi/mm.c (grub_efi_get_memory_map): Never return a * grub-core/kern/efi/mm.c (grub_efi_get_memory_map): Never return a

View file

@ -9,7 +9,14 @@ grub_uint64_t
grub_util_get_cpu_time_ms (void) grub_util_get_cpu_time_ms (void)
{ {
struct tms tm; 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); times (&tm);
return (tm.tms_utime * 1000ULL) / sysconf(_SC_CLK_TCK); return (tm.tms_utime * 1000ULL) / sc_clk_tck;
} }