Remove nested functions from USB iterators.

* include/grub/usb.h (grub_usb_iterate_hook_t): New type.
(grub_usb_controller_iterate_hook_t): Likewise.
(grub_usb_iterate): Add hook_data argument.
(grub_usb_controller_iterate): Likewise.
(struct grub_usb_controller_dev.iterate): Likewise.

Update all implementations and callers.
This commit is contained in:
Colin Watson 2013-01-21 21:02:24 +00:00
parent 18288f17ac
commit 5fdbaed168
9 changed files with 108 additions and 75 deletions

View file

@ -50,8 +50,12 @@ typedef enum
GRUB_USB_SPEED_HIGH
} grub_usb_speed_t;
typedef int (*grub_usb_iterate_hook_t) (grub_usb_device_t dev, void *data);
typedef int (*grub_usb_controller_iterate_hook_t) (grub_usb_controller_t dev,
void *data);
/* Call HOOK with each device, until HOOK returns non-zero. */
int grub_usb_iterate (int (*hook) (grub_usb_device_t dev));
int grub_usb_iterate (grub_usb_iterate_hook_t hook, void *hook_data);
grub_usb_err_t grub_usb_device_initialize (grub_usb_device_t dev);
@ -72,7 +76,8 @@ void grub_usb_controller_dev_register (grub_usb_controller_dev_t usb);
void grub_usb_controller_dev_unregister (grub_usb_controller_dev_t usb);
int grub_usb_controller_iterate (int (*hook) (grub_usb_controller_t dev));
int grub_usb_controller_iterate (grub_usb_controller_iterate_hook_t hook,
void *hook_data);
grub_usb_err_t grub_usb_control_msg (grub_usb_device_t dev, grub_uint8_t reqtype,
@ -98,7 +103,7 @@ struct grub_usb_controller_dev
/* The device name. */
const char *name;
int (*iterate) (int (*hook) (grub_usb_controller_t dev));
int (*iterate) (grub_usb_controller_iterate_hook_t hook, void *hook_data);
grub_usb_err_t (*setup_transfer) (grub_usb_controller_t dev,
grub_usb_transfer_t transfer);