diff --git a/ChangeLog b/ChangeLog index c641bf8a2..41f0f2950 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-11-05 Robert Millan + + * disk/ata.c: Remove `'. Include `'. + (grub_ata_wait): Reimplement using grub_millisleep(). + + * include/grub/misc.h (grub_div_roundup): Fix parenthesization. + * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction. + 2007-11-03 Marco Gerards * term/i386/pc/vga_text.c: Include . diff --git a/conf/i386-pc.mk b/conf/i386-pc.mk index c8fa738ff..7851c471e 100644 --- a/conf/i386-pc.mk +++ b/conf/i386-pc.mk @@ -2283,7 +2283,7 @@ und-ata.lst: pre-ata.o $(NM) -u -P -p $< | cut -f1 -d' ' >> $@ ata_mod-disk_ata.o: disk/ata.c - $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -MD -c -o $@ $< + $(TARGET_CC) -Idisk -I$(srcdir)/disk $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(ata_mod_CFLAGS) -MD -c -o $@ $< -include ata_mod-disk_ata.d CLEANFILES += cmd-ata_mod-disk_ata.lst fs-ata_mod-disk_ata.lst diff --git a/disk/ata.c b/disk/ata.c index 63406c292..f6514548b 100644 --- a/disk/ata.c +++ b/disk/ata.c @@ -21,9 +21,9 @@ #include #include #include +#include /* XXX: For now this only works on i386. */ #include -#include #include typedef enum @@ -142,10 +142,7 @@ grub_ata_wait_drq (struct grub_ata_device *dev) static inline void grub_ata_wait (void) { - grub_uint32_t time; - time = grub_get_rtc (); - - while (time + 1 > grub_get_rtc ()); + grub_millisleep (50); } /* Byteorder has to be changed before strings can be read. */ diff --git a/include/grub/i386/time.h b/include/grub/i386/time.h index c3691512e..ab50c7ec3 100644 --- a/include/grub/i386/time.h +++ b/include/grub/i386/time.h @@ -22,7 +22,8 @@ static __inline void grub_cpu_idle () { - __asm__ __volatile__ ("hlt"); + /* FIXME: this can't work untill we handle interrupts. */ +/* __asm__ __volatile__ ("hlt"); */ } #endif /* ! KERNEL_CPU_TIME_HEADER */ diff --git a/include/grub/misc.h b/include/grub/misc.h index 56f649246..86bc456e4 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -106,7 +106,7 @@ grub_max (long x, long y) static inline unsigned int grub_div_roundup (unsigned int x, unsigned int y) { - return (x + (y - 1) / y); + return (x + y - 1) / y; } #endif /* ! GRUB_MISC_HEADER */