commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[2526] 2009-08-24 Colin Watson <address@hidden>


From: Colin Watson
Subject: [2526] 2009-08-24 Colin Watson <address@hidden>
Date: Mon, 24 Aug 2009 17:03:24 +0000

Revision: 2526
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2526
Author:   cjwatson
Date:     2009-08-24 17:03:24 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
2009-08-24  Colin Watson  <address@hidden>

        * term/usb_keyboard.c (grub_usb_keyboard_getreport): Make
        `report' grub_uint8_t *.
        (grub_usb_keyboard_checkkey): Make `data' elements grub_uint8_t.
        Use a 50-millisecond timeout rather than just repeating
        grub_usb_keyboard_getreport 50 times.
        (grub_usb_keyboard_getkey): Make `data' elements grub_uint8_t.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/term/usb_keyboard.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-08-24 13:34:03 UTC (rev 2525)
+++ trunk/grub2/ChangeLog       2009-08-24 17:03:24 UTC (rev 2526)
@@ -1,3 +1,12 @@
+2009-08-24  Colin Watson  <address@hidden>
+
+       * term/usb_keyboard.c (grub_usb_keyboard_getreport): Make
+       `report' grub_uint8_t *.
+       (grub_usb_keyboard_checkkey): Make `data' elements grub_uint8_t.
+       Use a 50-millisecond timeout rather than just repeating
+       grub_usb_keyboard_getreport 50 times.
+       (grub_usb_keyboard_getkey): Make `data' elements grub_uint8_t.
+
 2009-08-24  Vladimir Serbinenko  <address@hidden>
 
        Rename *_partition_map to part_*

Modified: trunk/grub2/term/usb_keyboard.c
===================================================================
--- trunk/grub2/term/usb_keyboard.c     2009-08-24 13:34:03 UTC (rev 2525)
+++ trunk/grub2/term/usb_keyboard.c     2009-08-24 17:03:24 UTC (rev 2526)
@@ -97,7 +97,7 @@
 }
 
 static grub_err_t
-grub_usb_keyboard_getreport (grub_usb_device_t dev, unsigned char *report)
+grub_usb_keyboard_getreport (grub_usb_device_t dev, grub_uint8_t *report)
 {
   return grub_usb_control_msg (dev, (1 << 7) | (1 << 5) | 1, 0x01, 0, 0,
                               8, (char *) report);
@@ -108,20 +108,24 @@
 static int
 grub_usb_keyboard_checkkey (void)
 {
-  unsigned char data[8];
+  grub_uint8_t data[8];
   int key;
-  int i;
   grub_err_t err;
+  grub_uint64_t currtime;
+  int timeout = 50;
 
   data[2] = 0;
-  for (i = 0; i < 50; i++)
+  currtime = grub_get_time_ms ();
+  do
     {
       /* Get_Report.  */
       err = grub_usb_keyboard_getreport (usbdev, data);
 
-      if (! err && data[2])
+      /* Implement a timeout.  */
+      if (grub_get_time_ms () > currtime + timeout)
        break;
     }
+  while (err || !data[2]);
 
   if (err || !data[2])
     return -1;
@@ -174,7 +178,7 @@
 {
   int key;
   grub_err_t err;
-  unsigned char data[8];
+  grub_uint8_t data[8];
   grub_uint64_t currtime;
   int timeout;
   static grub_usb_keyboard_repeat_t repeat = GRUB_HIDBOOT_REPEAT_NONE;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]