[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] use grub_get_time_ms() instead of grub_get_rtc()
From: |
Robert Millan |
Subject: |
Re: [PATCH] use grub_get_time_ms() instead of grub_get_rtc() |
Date: |
Fri, 8 Aug 2008 01:48:04 +0200 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
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 <address@hidden>
>
> * 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
> address@hidden
> 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."