2008-08-08 Robert Millan <rmh@aybabtu.com>

* kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
        (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 `<grub/machine/time.h>' with `<grub/time.h>'.
        (run_menu): Migrate code from to using grub_get_time_ms().

        * util/misc.c (grub_get_time_ms): New function.
This commit is contained in:
robertmh 2008-08-07 23:48:13 +00:00
parent 7f280db554
commit 042bd419da
4 changed files with 35 additions and 12 deletions

View file

@ -22,13 +22,13 @@
#include <grub/types.h>
#include <grub/partition.h>
#include <grub/misc.h>
#include <grub/machine/time.h>
#include <grub/time.h>
#include <grub/file.h>
#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);