+2009-12-25 Robert Millan <rmh.grub@aybabtu.com>
+
+ * term/i386/pc/at_keyboard.c
+ (keyboard_controller_wait_untill_ready): New function.
+ (grub_keyboard_controller_write, grub_keyboard_controller_read)
+ (keyboard_controller_led): Use keyboard_controller_wait_untill_ready()
+ for keyboard polling, rather than duplicate the same loop. This
+ saves a few bytes in code size.
+
2009-12-25 Vladimir Serbinenko <phcoder@gmail.com>
Support for (pxe[:server[:gateway]]) syntax and
static grub_uint8_t grub_keyboard_controller_orig;
static void
-grub_keyboard_controller_write (grub_uint8_t c)
+keyboard_controller_wait_untill_ready ()
{
while (! KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS)));
+}
+
+static void
+grub_keyboard_controller_write (grub_uint8_t c)
+{
+ keyboard_controller_wait_untill_ready ();
grub_outb (KEYBOARD_COMMAND_WRITE, KEYBOARD_REG_STATUS);
grub_outb (c, KEYBOARD_REG_DATA);
}
static grub_uint8_t
grub_keyboard_controller_read (void)
{
- while (! KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS)));
+ keyboard_controller_wait_untill_ready ();
grub_outb (KEYBOARD_COMMAND_READ, KEYBOARD_REG_STATUS);
return grub_inb (KEYBOARD_REG_DATA);
}
static void
keyboard_controller_led (grub_uint8_t led_status)
{
- while (! KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS)));
+ keyboard_controller_wait_untill_ready ();
grub_outb (0xed, KEYBOARD_REG_DATA);
- while (! KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS)));
+ keyboard_controller_wait_untill_ready ();
grub_outb (led_status & 0x7, KEYBOARD_REG_DATA);
}