]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2007-10-22 Robert Millan <rmh@aybabtu.com>
authorrobertmh <robertmh@localhost>
Mon, 22 Oct 2007 19:59:33 +0000 (19:59 +0000)
committerrobertmh <robertmh@localhost>
Mon, 22 Oct 2007 19:59:33 +0000 (19:59 +0000)
* include/grub/time.h: New file.
* include/grub/i386/time.h: Likewise.
* include/grub/powerpc/time.h: Likewise.
* include/grub/sparc64/time.h: Likewise.

* include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
instances to ...
(KERNEL_MACHINE_TIME_HEADER): ... this.
* include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
instances to ...
(KERNEL_MACHINE_TIME_HEADER): ... this.
* include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
instances to ...
(KERNEL_MACHINE_TIME_HEADER): ... this.

* kern/i386/efi/init.c: Include `<grub/time.h>'.
(grub_millisleep): New function.
* kern/i386/pc/init.c: Include `<grub/time.h>'.
(grub_millisleep): New function.
* kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
Remove `grub/machine/time.h' include.
(grub_millisleep): New function.
* kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
Remove `grub/machine/time.h' include.
(grub_millisleep): New function.

* include/grub/misc.h (grub_div_roundup): New function.

* kern/misc.c: Include `<grub/time.h>'.
(grub_millisleep_generic): New function.

* conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
Add `time.h'.
* conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
Add `time.h'.
* conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
`machine/time.h'.  Add `time.h'.
* conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.

14 files changed:
ChangeLog
conf/i386-efi.rmk
conf/i386-pc.rmk
conf/powerpc-ieee1275.rmk
conf/sparc64-ieee1275.rmk
include/grub/i386/pc/time.h
include/grub/misc.h
include/grub/powerpc/ieee1275/time.h
include/grub/sparc64/ieee1275/time.h
kern/i386/efi/init.c
kern/i386/pc/init.c
kern/misc.c
kern/powerpc/ieee1275/init.c
kern/sparc64/ieee1275/init.c

index 47588a03513b7b8ae22d8d182128e75b88b3d022..de914d38e511ead2858cad81eea3d0766cf4b9c1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,44 @@
+2007-10-22  Robert Millan  <rmh@aybabtu.com>
+
+       * include/grub/time.h: New file.
+       * include/grub/i386/time.h: Likewise.
+       * include/grub/powerpc/time.h: Likewise.
+       * include/grub/sparc64/time.h: Likewise.
+
+       * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
+       instances to ...
+       (KERNEL_MACHINE_TIME_HEADER): ... this.
+       * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
+       instances to ...
+       (KERNEL_MACHINE_TIME_HEADER): ... this.
+       * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
+       instances to ...
+       (KERNEL_MACHINE_TIME_HEADER): ... this.
+
+       * kern/i386/efi/init.c: Include `<grub/time.h>'.
+       (grub_millisleep): New function.
+       * kern/i386/pc/init.c: Include `<grub/time.h>'.
+       (grub_millisleep): New function.
+       * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
+       Remove `grub/machine/time.h' include.
+       (grub_millisleep): New function.
+       * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
+       Remove `grub/machine/time.h' include.
+       (grub_millisleep): New function.
+
+       * include/grub/misc.h (grub_div_roundup): New function.
+
+       * kern/misc.c: Include `<grub/time.h>'.
+       (grub_millisleep_generic): New function.
+
+       * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
+       Add `time.h'.
+       * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
+       Add `time.h'.
+       * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
+       `machine/time.h'.  Add `time.h'.
+       * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
+
 2007-10-21  Robert Millan  <rmh@aybabtu.com>
 
        * include/grub/misc.h (grub_max): New function.
index da96909bba16451b6764c9df4f6c5d08816c6a5f..00a5b8841a5539c71d2f600cb8a9c454003f1b51 100644 (file)
@@ -88,8 +88,8 @@ kernel_mod_SOURCES = kern/i386/efi/startup.S kern/main.c kern/device.c \
        term/efi/console.c disk/efi/efidisk.c
 kernel_mod_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h \
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
-       partition.h pc_partition.h rescue.h symbol.h term.h types.h \
-       i386/efi/time.h efi/efi.h efi/time.h efi/disk.h
+       partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
+       efi/efi.h efi/time.h efi/disk.h
 kernel_mod_CFLAGS = $(COMMON_CFLAGS)
 kernel_mod_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_mod_LDFLAGS = $(COMMON_LDFLAGS)
index e0d6e63ccf940ab1ea6647911c64b9547a4a6be2..a53b77fa06ec772f0afb4fba10ff2d62cfdc3205 100644 (file)
@@ -32,10 +32,9 @@ kernel_img_SOURCES = kern/i386/pc/startup.S kern/main.c kern/device.c \
        symlist.c
 kernel_img_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h \
        env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \
-       partition.h pc_partition.h rescue.h symbol.h term.h types.h \
+       partition.h pc_partition.h rescue.h symbol.h term.h time.h types.h \
        machine/biosdisk.h machine/boot.h machine/console.h machine/init.h \
-       machine/memory.h machine/loader.h machine/time.h machine/vga.h \
-       machine/vbe.h
+       machine/memory.h machine/loader.h machine/vga.h machine/vbe.h
 kernel_img_CFLAGS = $(COMMON_CFLAGS)
 kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
 kernel_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,8200 $(COMMON_CFLAGS)
index 4510392612f139194d1b33d5782b387905c47fb3..bf06c0005a45a1a00064223cd9ccaa657c6f2d92 100644 (file)
@@ -12,8 +12,8 @@ DEFSYMFILES += kernel_syms.lst
 
 kernel_elf_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h \
        env.h err.h file.h fs.h kernel.h misc.h mm.h net.h parser.h rescue.h \
-       symbol.h term.h types.h powerpc/libgcc.h loader.h partition.h \
-       pc_partition.h ieee1275/ieee1275.h machine/time.h machine/kernel.h
+       symbol.h term.h time.h types.h powerpc/libgcc.h loader.h partition.h \
+       pc_partition.h ieee1275/ieee1275.h machine/kernel.h
 
 kernel_elf_symlist.c: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h gensymlist.sh
        /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
index 8aa0bec211f312647b93a2326e68b9f65b2859e6..972ee44a667f8001f8cc7d25ff1113ef1251f8c4 100644 (file)
@@ -12,8 +12,8 @@ DEFSYMFILES += kernel_syms.lst
 
 kernel_elf_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h \
        env.h err.h file.h fs.h kernel.h misc.h mm.h net.h parser.h rescue.h \
-       symbol.h term.h types.h sparc64/libgcc.h loader.h partition.h \
-       pc_partition.h ieee1275/ieee1275.h machine/time.h machine/kernel.h
+       symbol.h term.h time.h types.h sparc64/libgcc.h loader.h partition.h \
+       pc_partition.h ieee1275/ieee1275.h machine/kernel.h
 
 kernel_elf_symlist.c: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h gensymlist.sh
        /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)
index dba56e815c009a41013e4bf603e1d8724993e792..98399b6878713b1eb566a869f7cfeb815d3cd794 100644 (file)
@@ -16,8 +16,8 @@
  *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef KERNEL_TIME_HEADER
-#define KERNEL_TIME_HEADER     1
+#ifndef KERNEL_MACHINE_TIME_HEADER
+#define KERNEL_MACHINE_TIME_HEADER     1
 
 #include <grub/symbol.h>
 
@@ -26,4 +26,4 @@
 /* Return the real time in ticks.  */
 grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
 
-#endif /* ! KERNEL_TIME_HEADER */
+#endif /* ! KERNEL_MACHINE_TIME_HEADER */
index 8bd4baab835bd7cdfeb94de35e1a37174df3c02d..56f64924680a1de11b68cc22d80f95791d2a7289 100644 (file)
@@ -83,6 +83,7 @@ grub_uint64_t EXPORT_FUNC(grub_divmod64) (grub_uint64_t n,
                                          grub_uint32_t d, grub_uint32_t *r);
 
 /* Inline functions.  */
+
 static inline unsigned int
 grub_abs (int x)
 {
@@ -101,4 +102,11 @@ grub_max (long x, long y)
     return y;
 }
 
+/* Rounded-up division */
+static inline unsigned int
+grub_div_roundup (unsigned int x, unsigned int y)
+{
+  return (x + (y - 1) / y);
+}
+
 #endif /* ! GRUB_MISC_HEADER */
index 85f3ebf7824d41380ed8f4082e2ea5a063b1cbd5..3f8ad26d7820516d5a2eb8ae5309bf8dd1842a2d 100644 (file)
@@ -16,8 +16,8 @@
  *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef KERNEL_TIME_HEADER
-#define KERNEL_TIME_HEADER     1
+#ifndef KERNEL_MACHINE_TIME_HEADER
+#define KERNEL_MACHINE_TIME_HEADER     1
 
 #include <grub/symbol.h>
 
@@ -26,4 +26,4 @@
 /* Return the real time in ticks.  */
 grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
 
-#endif /* ! KERNEL_TIME_HEADER */
+#endif /* ! KERNEL_MACHINE_TIME_HEADER */
index 85f3ebf7824d41380ed8f4082e2ea5a063b1cbd5..3f8ad26d7820516d5a2eb8ae5309bf8dd1842a2d 100644 (file)
@@ -16,8 +16,8 @@
  *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef KERNEL_TIME_HEADER
-#define KERNEL_TIME_HEADER     1
+#ifndef KERNEL_MACHINE_TIME_HEADER
+#define KERNEL_MACHINE_TIME_HEADER     1
 
 #include <grub/symbol.h>
 
@@ -26,4 +26,4 @@
 /* Return the real time in ticks.  */
 grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
 
-#endif /* ! KERNEL_TIME_HEADER */
+#endif /* ! KERNEL_MACHINE_TIME_HEADER */
index 15d597a85ca5d2ff099b98ec5fdc16911b62c317..0683502a873b2b08d6eb4394bbb097e2e4aec9c6 100644 (file)
 #include <grub/cache.h>
 #include <grub/kernel.h>
 #include <grub/efi/efi.h>
+#include <grub/time.h>
+
+void
+grub_millisleep (grub_uint32_t ms)
+{
+  grub_millisleep_generic (ms);
+}
 
 void
 grub_machine_init (void)
index 90abd95376f6305f35e211a08f751bd8d596961a..00c7f4976ce2ebd9bd8eac4a3273af44afcf3f53 100644 (file)
@@ -30,6 +30,7 @@
 #include <grub/loader.h>
 #include <grub/env.h>
 #include <grub/cache.h>
+#include <grub/time.h>
 
 struct mem_region
 {
@@ -46,6 +47,12 @@ grub_addr_t grub_os_area_addr;
 grub_size_t grub_os_area_size;
 grub_size_t grub_lower_mem, grub_upper_mem;
 
+void
+grub_millisleep (grub_uint32_t ms)
+{
+  grub_millisleep_generic (ms);
+}
+
 void 
 grub_arch_sync_caches (void *address __attribute__ ((unused)),
                       grub_size_t len __attribute__ ((unused)))
index 8df1ee066078ff853d8906a5550dad4ef12c2e6b..4cb846d5ea62d7df48f724b8233fc13f2048b499 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdarg.h>
 #include <grub/term.h>
 #include <grub/env.h>
+#include <grub/time.h>
 
 void *
 grub_memmove (void *dest, const void *src, grub_size_t n)
@@ -1041,6 +1042,17 @@ grub_utf8_to_ucs4 (grub_uint32_t *dest, const grub_uint8_t *src,
   return p - dest;
 }
 
+void
+grub_millisleep_generic (grub_uint32_t ms)
+{
+  grub_uint32_t end_at;
+
+  end_at = grub_get_rtc () + grub_div_roundup (ms * GRUB_TICKS_PER_SECOND, 1000);
+
+  while (grub_get_rtc () < end_at)
+    grub_cpu_idle ();
+}
+
 /* Abort GRUB. This function does not return.  */
 void
 grub_abort (void)
index 26a690a5da2f04f81c47c35e7e6fa15ebc40b606..4727d7d0bf6434a1eef08d177e2462c920e4cc89 100644 (file)
@@ -27,8 +27,8 @@
 #include <grub/setjmp.h>
 #include <grub/env.h>
 #include <grub/misc.h>
+#include <grub/time.h>
 #include <grub/machine/console.h>
-#include <grub/machine/time.h>
 #include <grub/machine/kernel.h>
 #include <grub/ieee1275/ofdisk.h>
 #include <grub/ieee1275/ieee1275.h>
 extern char _start[];
 extern char _end[];
 
+void
+grub_millisleep (grub_uint32_t ms)
+{
+  grub_millisleep_generic (ms);
+}
+
 void
 grub_exit (void)
 {
index 8bad9eadf3b8b2f954c05d1795460c3875749196..dbc1fee3e2bd965bb10326ef86c7bf51512524fa 100644 (file)
@@ -27,8 +27,8 @@
 #include <grub/setjmp.h>
 #include <grub/env.h>
 #include <grub/misc.h>
+#include <grub/time.h>
 #include <grub/machine/console.h>
-#include <grub/machine/time.h>
 #include <grub/machine/kernel.h>
 #include <grub/ieee1275/ofdisk.h>
 #include <grub/ieee1275/ieee1275.h>
@@ -66,6 +66,12 @@ _start (uint64_t r0 __attribute__((unused)),
   /* Never reached.  */
 }
 
+void
+grub_millisleep (grub_uint32_t ms)
+{
+  grub_millisleep_generic (ms);
+}
+
 int
 grub_ieee1275_test_flag (enum grub_ieee1275_flag flag)
 {