Use background transfers for usb_keyboard

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-08-21 17:12:51 +02:00
parent 3ee4474e8d
commit e959937cfd
4 changed files with 127 additions and 22 deletions

View file

@ -274,5 +274,10 @@ grub_usb_err_t
grub_usb_bulk_read_extended (grub_usb_device_t dev,
int endpoint, grub_size_t size, char *data,
int timeout, grub_size_t *actual);
grub_usb_transfer_t
grub_usb_bulk_read_background (grub_usb_device_t dev,
int endpoint, grub_size_t size, void *data);
grub_usb_err_t
grub_usb_check_transfer (grub_usb_transfer_t trans, grub_size_t *actual);
#endif /* GRUB_USB_H */

View file

@ -56,6 +56,8 @@ struct grub_usb_transfer
grub_transaction_type_t type;
grub_transfer_type_t dir;
struct grub_usb_device *dev;
struct grub_usb_transaction *transactions;
@ -64,6 +66,10 @@ struct grub_usb_transfer
/* Index of last processed transaction in OHCI/UHCI driver. */
void *controller_data;
/* Used when finishing transfer to copy data back. */
struct grub_pci_dma_chunk *data_chunk;
void *data;
};
typedef struct grub_usb_transfer *grub_usb_transfer_t;