u8 iConfiguration;
u8 bmAttributes;
u8 bMaxPower;
+
+ struct usb_conf *next;
+ struct usb_intf *intf;
+};
+
+struct usb_intf {
+ u8 bLength;
+ u8 bDescriptorType;
+ u8 bInterfaceNumber;
+ u8 bAlternateSetting;
+ u8 bNumEndpoints;
+ u8 bInterfaceClass;
+ u8 bInterfaceSubClass;
+ u8 bInterfaceProtocol;
+ u8 iInterface;
+
+ struct usb_intf *next;
+ struct usb_endp *endp;
+};
+
+struct usb_endp {
+ u8 bLength;
+ u8 bDescriptorType;
+ u8 bEndpointAddress;
+ u8 bmAttributes;
+ u16 wMaxPacketSize;
+ u8 bInterval;
+
+ struct usb_endp *next;
};
struct usb_endpoint {
u8 usb_register_driver(struct usb_driver *driver);
void usb_probe_driver();
-
+void lsusb(struct usb_device *dev);
struct usb_irp *usb_get_irp();
u8 usb_remove_irp(struct usb_irp *irp);