update class driver info,support class driver export
This commit is contained in:
@@ -273,3 +273,13 @@ const struct usbh_class_driver cdc_acm_class_driver = {
|
||||
.connect = usbh_cdc_acm_connect,
|
||||
.disconnect = usbh_cdc_acm_disconnect
|
||||
};
|
||||
|
||||
CLASS_INFO_DEFINE const struct usbh_class_info cdc_acm_class_info = {
|
||||
.match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL,
|
||||
.class = USB_DEVICE_CLASS_CDC,
|
||||
.subclass = CDC_ABSTRACT_CONTROL_MODEL,
|
||||
.protocol = CDC_COMMON_PROTOCOL_AT_COMMANDS,
|
||||
.vid = 0x00,
|
||||
.pid = 0x00,
|
||||
.class_driver = &cdc_acm_class_driver
|
||||
};
|
||||
@@ -41,7 +41,7 @@ struct usbh_cdc_acm {
|
||||
#endif
|
||||
};
|
||||
|
||||
extern const struct usbh_class_driver cdc_acm_class_driver;
|
||||
extern const struct usbh_class_info cdc_acm_class_info;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -240,3 +240,23 @@ const struct usbh_class_driver hid_class_driver = {
|
||||
.connect = usbh_hid_connect,
|
||||
.disconnect = usbh_hid_disconnect
|
||||
};
|
||||
|
||||
CLASS_INFO_DEFINE const struct usbh_class_info hid_keyboard_class_info = {
|
||||
.match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL,
|
||||
.class = USB_DEVICE_CLASS_HID,
|
||||
.subclass = HID_SUBCLASS_BOOTIF,
|
||||
.protocol = HID_PROTOCOL_KEYBOARD,
|
||||
.vid = 0x00,
|
||||
.pid = 0x00,
|
||||
.class_driver = &hid_class_driver
|
||||
};
|
||||
|
||||
CLASS_INFO_DEFINE const struct usbh_class_info hid_mouse_class_info = {
|
||||
.match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL,
|
||||
.class = USB_DEVICE_CLASS_HID,
|
||||
.subclass = HID_SUBCLASS_BOOTIF,
|
||||
.protocol = HID_PROTOCOL_MOUSE,
|
||||
.vid = 0x00,
|
||||
.pid = 0x00,
|
||||
.class_driver = &hid_class_driver
|
||||
};
|
||||
@@ -34,7 +34,8 @@ struct usbh_hid {
|
||||
usbh_epinfo_t intout; /* INTR OUT endpoint */
|
||||
};
|
||||
|
||||
extern const struct usbh_class_driver hid_class_driver;
|
||||
extern const struct usbh_class_info hid_keyboard_class_info;
|
||||
extern const struct usbh_class_info hid_mouse_class_info;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -506,4 +506,14 @@ const struct usbh_class_driver hub_class_driver = {
|
||||
.driver_name = "hub",
|
||||
.connect = usbh_hub_connect,
|
||||
.disconnect = usbh_hub_disconnect
|
||||
};
|
||||
|
||||
CLASS_INFO_DEFINE const struct usbh_class_info hub_class_info = {
|
||||
.match_flags = USB_CLASS_MATCH_INTF_CLASS,
|
||||
.class = USB_DEVICE_CLASS_HUB,
|
||||
.subclass = 0,
|
||||
.protocol = 0,
|
||||
.vid = 0x00,
|
||||
.pid = 0x00,
|
||||
.class_driver = &hub_class_driver
|
||||
};
|
||||
@@ -29,9 +29,9 @@
|
||||
/* Maximum size of an interrupt IN transfer */
|
||||
#define USBH_HUB_INTIN_BUFSIZE ((USBH_HUB_MAX_PORTS + 8) >> 3)
|
||||
|
||||
extern const struct usbh_class_driver hub_class_driver;
|
||||
extern const struct usbh_class_info hub_class_info;
|
||||
extern usb_slist_t hub_class_head;
|
||||
extern usb_osal_thread_t hub_thread;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
@@ -338,6 +338,7 @@ int usbh_msc_connect(struct usbh_hubport *hport, uint8_t intf)
|
||||
}
|
||||
|
||||
memset(msc_class, 0, sizeof(struct usbh_msc));
|
||||
msc_class->hport = hport;
|
||||
|
||||
usbh_msc_devno_alloc(msc_class);
|
||||
snprintf(hport->config.intf[intf].devname, CONFIG_USBHOST_DEV_NAMELEN, DEV_FORMAT, msc_class->sdchar);
|
||||
@@ -428,3 +429,13 @@ const struct usbh_class_driver msc_class_driver = {
|
||||
.connect = usbh_msc_connect,
|
||||
.disconnect = usbh_msc_disconnect
|
||||
};
|
||||
|
||||
CLASS_INFO_DEFINE const struct usbh_class_info msc_class_info = {
|
||||
.match_flags = USB_CLASS_MATCH_INTF_CLASS | USB_CLASS_MATCH_INTF_SUBCLASS | USB_CLASS_MATCH_INTF_PROTOCOL,
|
||||
.class = USB_DEVICE_CLASS_MASS_STORAGE,
|
||||
.subclass = MSC_SUBCLASS_SCSI,
|
||||
.protocol = MSC_PROTOCOL_BULK_ONLY,
|
||||
.vid = 0x00,
|
||||
.pid = 0x00,
|
||||
.class_driver = &msc_class_driver
|
||||
};
|
||||
@@ -38,7 +38,7 @@ struct usbh_msc {
|
||||
uint16_t blocksize; /* Block size of USB mass storage device */
|
||||
};
|
||||
|
||||
extern const struct usbh_class_driver msc_class_driver;
|
||||
extern const struct usbh_class_info msc_class_info;
|
||||
|
||||
int usbh_msc_scsi_write10(struct usbh_msc *msc_class, uint32_t start_sector, const uint8_t *buffer, uint32_t nsectors);
|
||||
int usbh_msc_scsi_read10(struct usbh_msc *msc_class, uint32_t start_sector, const uint8_t *buffer, uint32_t nsectors);
|
||||
@@ -51,4 +51,4 @@ extern "C" {
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif
|
||||
Reference in New Issue
Block a user