From 042bd419daf5fb0572731a1662a8395909360b2e Mon Sep 17 00:00:00 2001 From: robertmh Date: Thu, 7 Aug 2008 23:48:13 +0000 Subject: [PATCH] 2008-08-08 Robert Millan * kern/disk.c: Replace `' with `'. (grub_last_time): Change type to grub_uint64_t. (grub_disk_open): Migrate code from to using grub_get_time_ms(). (grub_disk_close): Likewise. * normal/menu.c: Replace `' with `'. (run_menu): Migrate code from to using grub_get_time_ms(). * util/misc.c (grub_get_time_ms): New function. --- ChangeLog | 12 ++++++++++++ kern/disk.c | 12 ++++++------ normal/menu.c | 12 ++++++------ util/misc.c | 11 +++++++++++ 4 files changed, 35 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index d10fac416..a20d59833 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2008-08-08 Robert Millan + + * kern/disk.c: Replace `' with `'. + (grub_last_time): Change type to grub_uint64_t. + (grub_disk_open): Migrate code from to using grub_get_time_ms(). + (grub_disk_close): Likewise. + + * normal/menu.c: Replace `' with `'. + (run_menu): Migrate code from to using grub_get_time_ms(). + + * util/misc.c (grub_get_time_ms): New function. + 2008-08-08 Marco Gerards * disk/ata.c (grub_ata_regget): Change return type to diff --git a/kern/disk.c b/kern/disk.c index 980b5056a..ed82506fd 100644 --- a/kern/disk.c +++ b/kern/disk.c @@ -22,13 +22,13 @@ #include #include #include -#include +#include #include #define GRUB_CACHE_TIMEOUT 2 /* The last time the disk was used. */ -static unsigned long grub_last_time = 0; +static grub_uint64_t grub_last_time = 0; /* Disk cache. */ @@ -215,7 +215,7 @@ grub_disk_open (const char *name) grub_disk_t disk; grub_disk_dev_t dev; char *raw = (char *) name; - unsigned long current_time; + grub_uint64_t current_time; grub_dprintf ("disk", "Opening `%s'...\n", name); @@ -280,10 +280,10 @@ grub_disk_open (const char *name) /* The cache will be invalidated about 2 seconds after a device was closed. */ - current_time = grub_get_rtc (); + current_time = grub_get_time_ms (); if (current_time > (grub_last_time - + GRUB_CACHE_TIMEOUT * GRUB_TICKS_PER_SECOND)) + + GRUB_CACHE_TIMEOUT * 1000)) grub_disk_cache_invalidate_all (); grub_last_time = current_time; @@ -315,7 +315,7 @@ grub_disk_close (grub_disk_t disk) (disk->dev->close) (disk); /* Reset the timer. */ - grub_last_time = grub_get_rtc (); + grub_last_time = grub_get_time_ms (); grub_free (disk->partition); grub_free ((void *) disk->name); diff --git a/normal/menu.c b/normal/menu.c index 1d4d4ec73..8a110d176 100644 --- a/normal/menu.c +++ b/normal/menu.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include @@ -326,7 +326,7 @@ static int run_menu (grub_menu_t menu, int nested) { int first, offset; - unsigned long saved_time; + grub_uint64_t saved_time; int default_entry; int timeout; @@ -351,7 +351,7 @@ run_menu (grub_menu_t menu, int nested) } /* Initialize the time. */ - saved_time = grub_get_rtc (); + saved_time = grub_get_time_ms (); refresh: grub_setcursor (0); @@ -371,10 +371,10 @@ run_menu (grub_menu_t menu, int nested) if (timeout > 0) { - unsigned long current_time; + grub_uint64_t current_time; - current_time = grub_get_rtc (); - if (current_time - saved_time >= GRUB_TICKS_PER_SECOND) + current_time = grub_get_time_ms (); + if (current_time - saved_time >= 1000) { timeout--; set_timeout (timeout); diff --git a/util/misc.c b/util/misc.c index b285af378..ce98665c8 100644 --- a/util/misc.c +++ b/util/misc.c @@ -33,6 +33,7 @@ #include #include #include +#include #include /* Include malloc.h, only if memalign is available. It is known that @@ -284,6 +285,16 @@ grub_get_rtc (void) * GRUB_TICKS_PER_SECOND / 1000000)); } +grub_uint64_t +grub_get_time_ms (void) +{ + struct timeval tv; + + gettimeofday (&tv, 0); + + return (tv.tv_sec * 1000 + tv.tv_usec / 1000); +} + void grub_arch_sync_caches (void *address __attribute__ ((unused)), grub_size_t len __attribute__ ((unused)))