From a57fbb11cdcb5e2e97cc10f0e96552f4a6666bb1 Mon Sep 17 00:00:00 2001 From: David van Moolenbroek Date: Sun, 30 Aug 2009 16:06:59 +0000 Subject: [PATCH] Fix time(1) for custom system HZ values (reported by Jose Luis Sanchez --- commands/simple/time.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/commands/simple/time.c b/commands/simple/time.c index 49d8e2e22..7860062b5 100755 --- a/commands/simple/time.c +++ b/commands/simple/time.c @@ -11,6 +11,7 @@ #include #include #include +#include #include /* -DNEW prints time to 0.01 sec. */ @@ -108,16 +109,19 @@ register clock_t t; /* Print the time 't' in hours: minutes: seconds. 't' is in ticks. */ int hours, minutes, seconds, hundredths, i; + u32_t system_hz; + + getsysinfo_up(PM_PROC_NR, SIU_SYSTEMHZ, sizeof(system_hz), &system_hz); digit_seen = 0; for (i = 0; i < 8; i++) a[i] = ' '; - hours = (int) (t / ((clock_t) 3600 * CLOCKS_PER_SEC)); - t -= (clock_t) hours * 3600 * CLOCKS_PER_SEC; - minutes = (int) (t / ((clock_t) 60 * CLOCKS_PER_SEC)); - t -= (clock_t) minutes * 60 * CLOCKS_PER_SEC; - seconds = (int) (t / CLOCKS_PER_SEC); - t -= (clock_t) seconds * CLOCKS_PER_SEC; - hundredths = (int) (t * 100 / CLOCKS_PER_SEC); + hours = (int) (t / ((clock_t) 3600 * system_hz)); + t -= (clock_t) hours * 3600 * system_hz; + minutes = (int) (t / ((clock_t) 60 * system_hz)); + t -= (clock_t) minutes * 60 * system_hz; + seconds = (int) (t / system_hz); + t -= (clock_t) seconds * system_hz; + hundredths = (int) (t * 100 / system_hz); if (hours) { twin(hours, &a[0]); -- 2.44.0