Committed. On Wed, Aug 06, 2008 at 01:54:50AM +0200, Robert Millan wrote: > > This replaces usage of grub_get_rtc() with grub_get_time_ms() in a few places > throurough the code. Aside from the gained precision, it also permits that > functionality to work on Coreboot. > > -- > Robert Millan > > The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and > how) you may access your data; but nobody's threatening your freedom: we > still allow you to remove your data and not access it at all."
> 2008-08-06 Robert Millan <[EMAIL PROTECTED]> > > * 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. > > Index: kern/disk.c > =================================================================== > --- kern/disk.c (revision 1780) > +++ kern/disk.c (working copy) > @@ -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_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 @@ > > /* 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 @@ > (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: normal/menu.c > =================================================================== > --- normal/menu.c (revision 1780) > +++ normal/menu.c (working copy) > @@ -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 @@ > 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 @@ > } > > /* Initialize the time. */ > - saved_time = grub_get_rtc (); > + saved_time = grub_get_time_ms (); > > refresh: > grub_setcursor (0); > @@ -371,10 +371,10 @@ > > 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: util/misc.c > =================================================================== > --- util/misc.c (revision 1780) > +++ util/misc.c (working copy) > @@ -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_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))) > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/grub-devel -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all." _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel