]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2009-12-25 Robert Millan <rmh.grub@aybabtu.com>
authorRobert Millan <rmh@aybabtu.com>
Fri, 25 Dec 2009 21:38:09 +0000 (21:38 +0000)
committerRobert Millan <rmh@aybabtu.com>
Fri, 25 Dec 2009 21:38:09 +0000 (21:38 +0000)
* 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.

ChangeLog
term/i386/pc/at_keyboard.c

index 46e06b25578f3c4b1194cbc8c6468deb0083c002..9cef9c96ddd6e5f1bb2cca378a15033723704088 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+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
index dfa06ab4e27a07ced4120ad89e7aa56e1ee41557..a53dbfa2dc82343d4e9e5910783abf212aa1f291 100644 (file)
@@ -72,9 +72,15 @@ static char keyboard_map_shift[128] =
 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);
 }
@@ -82,7 +88,7 @@ grub_keyboard_controller_write (grub_uint8_t c)
 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);
 }
@@ -90,9 +96,9 @@ grub_keyboard_controller_read (void)
 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);
 }