]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-08-08 Robert Millan <rmh@aybabtu.com>
authorrobertmh <robertmh@localhost>
Thu, 7 Aug 2008 23:48:13 +0000 (23:48 +0000)
committerrobertmh <robertmh@localhost>
Thu, 7 Aug 2008 23:48:13 +0000 (23:48 +0000)
        * 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.

ChangeLog
kern/disk.c
normal/menu.c
util/misc.c

index d10fac416945e748063c060490ff7faaf08aa867..a20d59833d45c77a7dc9c2398293b48c7be6b616 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+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.
+
 2008-08-08  Marco Gerards  <marco@gnu.org>
 
        * disk/ata.c (grub_ata_regget): Change return type to
index 980b5056ae6bd969657131acc16b2f7e055c2406..ed82506fd08ccb205b26fbdf26c6f7f1da05335a 100644 (file)
 #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);
index 1d4d4ec7359da083baa61720515f172546569642..8a110d1762beaa3763e5c41b5cd1c1cf3fb3c31f 100644 (file)
@@ -21,7 +21,7 @@
 #include <grub/misc.h>
 #include <grub/loader.h>
 #include <grub/mm.h>
-#include <grub/machine/time.h>
+#include <grub/time.h>
 #include <grub/env.h>
 #include <grub/script.h>
 
@@ -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);
index b285af378f2f94481b1d2443cd83ed634b51bffe..ce98665c87af1b78d8e8c645def779efca90b49a 100644 (file)
@@ -33,6 +33,7 @@
 #include <grub/util/misc.h>
 #include <grub/mm.h>
 #include <grub/term.h>
+#include <grub/time.h>
 #include <grub/machine/time.h>
 
 /* 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)))