From: Vladimir 'phcoder' Serbinenko Date: Sat, 17 Jul 2010 01:58:23 +0000 (+0200) Subject: Support USB device drivers autoloading X-Git-Tag: 1.99~654^2~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a17b90f0ec5802967577ed71ab825c915d7e2ab6;p=thirdparty%2Fgrub.git Support USB device drivers autoloading --- diff --git a/bus/usb/usb.c b/bus/usb/usb.c index f6a0a8b56..804cbaff0 100644 --- a/bus/usb/usb.c +++ b/bus/usb/usb.c @@ -22,6 +22,7 @@ #include #include #include +#include static grub_usb_controller_dev_t grub_usb_list; struct grub_usb_attach_desc *attach_hooks; @@ -256,6 +257,19 @@ void grub_usb_device_attach (grub_usb_device_t dev) for (desc = attach_hooks; desc; desc = desc->next) if (interf->class == desc->class && desc->hook (dev, 0, i)) dev->config[0].interf[i].attached = 1; + + if (dev->config[0].interf[i].attached) + continue; + + switch (interf->class) + { + case GRUB_USB_CLASS_MASS_STORAGE: + grub_dl_load ("usbms"); + break; + case GRUB_USB_CLASS_HID: + grub_dl_load ("usb_keyboard"); + break; + } } }