+2009-08-24 Colin Watson <cjwatson@ubuntu.com>
+
+ * 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 <phcoder@gmail.com>
Rename *_partition_map to part_*
}
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);
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;
{
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;