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.
This commit is contained in:
robertmh 2007-10-22 19:59:33 +00:00
parent a39a031233
commit 3381d27403
14 changed files with 106 additions and 20 deletions

View file

@ -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> 2007-10-21 Robert Millan <rmh@aybabtu.com>
* include/grub/misc.h (grub_max): New function. * include/grub/misc.h (grub_max): New function.

View 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 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 \ 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 \ 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 \
i386/efi/time.h efi/efi.h efi/time.h efi/disk.h efi/efi.h efi/time.h efi/disk.h
kernel_mod_CFLAGS = $(COMMON_CFLAGS) kernel_mod_CFLAGS = $(COMMON_CFLAGS)
kernel_mod_ASFLAGS = $(COMMON_ASFLAGS) kernel_mod_ASFLAGS = $(COMMON_ASFLAGS)
kernel_mod_LDFLAGS = $(COMMON_LDFLAGS) kernel_mod_LDFLAGS = $(COMMON_LDFLAGS)

View file

@ -32,10 +32,9 @@ kernel_img_SOURCES = kern/i386/pc/startup.S kern/main.c kern/device.c \
symlist.c symlist.c
kernel_img_HEADERS = arg.h boot.h cache.h device.h disk.h dl.h elf.h elfload.h \ 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 \ 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/biosdisk.h machine/boot.h machine/console.h machine/init.h \
machine/memory.h machine/loader.h machine/time.h machine/vga.h \ machine/memory.h machine/loader.h machine/vga.h machine/vbe.h
machine/vbe.h
kernel_img_CFLAGS = $(COMMON_CFLAGS) kernel_img_CFLAGS = $(COMMON_CFLAGS)
kernel_img_ASFLAGS = $(COMMON_ASFLAGS) kernel_img_ASFLAGS = $(COMMON_ASFLAGS)
kernel_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,8200 $(COMMON_CFLAGS) kernel_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,8200 $(COMMON_CFLAGS)

View 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 \ 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 \ 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 \ symbol.h term.h time.h types.h powerpc/libgcc.h loader.h partition.h \
pc_partition.h ieee1275/ieee1275.h machine/time.h machine/kernel.h pc_partition.h ieee1275/ieee1275.h machine/kernel.h
kernel_elf_symlist.c: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h gensymlist.sh kernel_elf_symlist.c: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h gensymlist.sh
/bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1) /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)

View 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 \ 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 \ 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 \ symbol.h term.h time.h types.h sparc64/libgcc.h loader.h partition.h \
pc_partition.h ieee1275/ieee1275.h machine/time.h machine/kernel.h pc_partition.h ieee1275/ieee1275.h machine/kernel.h
kernel_elf_symlist.c: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h gensymlist.sh kernel_elf_symlist.c: $(addprefix include/grub/,$(kernel_elf_HEADERS)) config.h gensymlist.sh
/bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1) /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1)

View file

@ -16,8 +16,8 @@
* along with GRUB. If not, see <http://www.gnu.org/licenses/>. * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef KERNEL_TIME_HEADER #ifndef KERNEL_MACHINE_TIME_HEADER
#define KERNEL_TIME_HEADER 1 #define KERNEL_MACHINE_TIME_HEADER 1
#include <grub/symbol.h> #include <grub/symbol.h>
@ -26,4 +26,4 @@
/* Return the real time in ticks. */ /* Return the real time in ticks. */
grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void); grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
#endif /* ! KERNEL_TIME_HEADER */ #endif /* ! KERNEL_MACHINE_TIME_HEADER */

View file

@ -83,6 +83,7 @@ grub_uint64_t EXPORT_FUNC(grub_divmod64) (grub_uint64_t n,
grub_uint32_t d, grub_uint32_t *r); grub_uint32_t d, grub_uint32_t *r);
/* Inline functions. */ /* Inline functions. */
static inline unsigned int static inline unsigned int
grub_abs (int x) grub_abs (int x)
{ {
@ -101,4 +102,11 @@ grub_max (long x, long y)
return 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 */ #endif /* ! GRUB_MISC_HEADER */

View file

@ -16,8 +16,8 @@
* along with GRUB. If not, see <http://www.gnu.org/licenses/>. * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef KERNEL_TIME_HEADER #ifndef KERNEL_MACHINE_TIME_HEADER
#define KERNEL_TIME_HEADER 1 #define KERNEL_MACHINE_TIME_HEADER 1
#include <grub/symbol.h> #include <grub/symbol.h>
@ -26,4 +26,4 @@
/* Return the real time in ticks. */ /* Return the real time in ticks. */
grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void); grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
#endif /* ! KERNEL_TIME_HEADER */ #endif /* ! KERNEL_MACHINE_TIME_HEADER */

View file

@ -16,8 +16,8 @@
* along with GRUB. If not, see <http://www.gnu.org/licenses/>. * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef KERNEL_TIME_HEADER #ifndef KERNEL_MACHINE_TIME_HEADER
#define KERNEL_TIME_HEADER 1 #define KERNEL_MACHINE_TIME_HEADER 1
#include <grub/symbol.h> #include <grub/symbol.h>
@ -26,4 +26,4 @@
/* Return the real time in ticks. */ /* Return the real time in ticks. */
grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void); grub_uint32_t EXPORT_FUNC (grub_get_rtc) (void);
#endif /* ! KERNEL_TIME_HEADER */ #endif /* ! KERNEL_MACHINE_TIME_HEADER */

View file

@ -25,6 +25,13 @@
#include <grub/cache.h> #include <grub/cache.h>
#include <grub/kernel.h> #include <grub/kernel.h>
#include <grub/efi/efi.h> #include <grub/efi/efi.h>
#include <grub/time.h>
void
grub_millisleep (grub_uint32_t ms)
{
grub_millisleep_generic (ms);
}
void void
grub_machine_init (void) grub_machine_init (void)

View file

@ -30,6 +30,7 @@
#include <grub/loader.h> #include <grub/loader.h>
#include <grub/env.h> #include <grub/env.h>
#include <grub/cache.h> #include <grub/cache.h>
#include <grub/time.h>
struct mem_region 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_os_area_size;
grub_size_t grub_lower_mem, grub_upper_mem; grub_size_t grub_lower_mem, grub_upper_mem;
void
grub_millisleep (grub_uint32_t ms)
{
grub_millisleep_generic (ms);
}
void void
grub_arch_sync_caches (void *address __attribute__ ((unused)), grub_arch_sync_caches (void *address __attribute__ ((unused)),
grub_size_t len __attribute__ ((unused))) grub_size_t len __attribute__ ((unused)))

View file

@ -23,6 +23,7 @@
#include <stdarg.h> #include <stdarg.h>
#include <grub/term.h> #include <grub/term.h>
#include <grub/env.h> #include <grub/env.h>
#include <grub/time.h>
void * void *
grub_memmove (void *dest, const void *src, grub_size_t n) 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; 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. */ /* Abort GRUB. This function does not return. */
void void
grub_abort (void) grub_abort (void)

View file

@ -27,8 +27,8 @@
#include <grub/setjmp.h> #include <grub/setjmp.h>
#include <grub/env.h> #include <grub/env.h>
#include <grub/misc.h> #include <grub/misc.h>
#include <grub/time.h>
#include <grub/machine/console.h> #include <grub/machine/console.h>
#include <grub/machine/time.h>
#include <grub/machine/kernel.h> #include <grub/machine/kernel.h>
#include <grub/ieee1275/ofdisk.h> #include <grub/ieee1275/ofdisk.h>
#include <grub/ieee1275/ieee1275.h> #include <grub/ieee1275/ieee1275.h>
@ -46,6 +46,12 @@
extern char _start[]; extern char _start[];
extern char _end[]; extern char _end[];
void
grub_millisleep (grub_uint32_t ms)
{
grub_millisleep_generic (ms);
}
void void
grub_exit (void) grub_exit (void)
{ {

View file

@ -27,8 +27,8 @@
#include <grub/setjmp.h> #include <grub/setjmp.h>
#include <grub/env.h> #include <grub/env.h>
#include <grub/misc.h> #include <grub/misc.h>
#include <grub/time.h>
#include <grub/machine/console.h> #include <grub/machine/console.h>
#include <grub/machine/time.h>
#include <grub/machine/kernel.h> #include <grub/machine/kernel.h>
#include <grub/ieee1275/ofdisk.h> #include <grub/ieee1275/ofdisk.h>
#include <grub/ieee1275/ieee1275.h> #include <grub/ieee1275/ieee1275.h>
@ -66,6 +66,12 @@ _start (uint64_t r0 __attribute__((unused)),
/* Never reached. */ /* Never reached. */
} }
void
grub_millisleep (grub_uint32_t ms)
{
grub_millisleep_generic (ms);
}
int int
grub_ieee1275_test_flag (enum grub_ieee1275_flag flag) grub_ieee1275_test_flag (enum grub_ieee1275_flag flag)
{ {