diff options
| author | hathach <[email protected]> | 2013-03-09 13:11:02 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-03-09 13:11:02 +0700 |
| commit | b1db85dedf5546bee594a40ba41cf644bf7b3ae0 (patch) | |
| tree | 186060e03f943865bcdbea2e77efce19396279af /tinyusb/host/usbh.h | |
| parent | b146730306ff9f5e3d8dea520a62a5a25d33f92b (diff) | |
- addd p_qtd_list_tail to qhd structure for easy queue TD
- move control_request from ehci_data to usbh_device_info_pool
- add test for bulk transfer double (2 consecutive xfers)
- use table (array) structure for class driver, currently included
- refractor extract to function insert_qtd_to_qhd
+ init function
+ install_subtask
--> all class driver function must be declared with WEAK
Diffstat (limited to 'tinyusb/host/usbh.h')
| -rw-r--r-- | tinyusb/host/usbh.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tinyusb/host/usbh.h b/tinyusb/host/usbh.h index 1f7e492c2..feb13b7e0 100644 --- a/tinyusb/host/usbh.h +++ b/tinyusb/host/usbh.h @@ -63,6 +63,36 @@ //--------------------------------------------------------------------+ // MACRO CONSTANT TYPEDEF //--------------------------------------------------------------------+ +#define CLASS_TABLE(ENTRY_EXPANDER) \ + ENTRY_EXPANDER(TUSB_CLASS_AUDIO)\ + ENTRY_EXPANDER(TUSB_CLASS_CDC)\ + ENTRY_EXPANDER(TUSB_CLASS_HID)\ + ENTRY_EXPANDER(TUSB_CLASS_PHYSICAL)\ + ENTRY_EXPANDER(TUSB_CLASS_IMAGE)\ + ENTRY_EXPANDER(TUSB_CLASS_PRINTER)\ + ENTRY_EXPANDER(TUSB_CLASS_MSC)\ + ENTRY_EXPANDER(TUSB_CLASS_HUB)\ + ENTRY_EXPANDER(TUSB_CLASS_CDC_DATA)\ + ENTRY_EXPANDER(TUSB_CLASS_SMART_CARD)\ + ENTRY_EXPANDER(TUSB_CLASS_CONTENT_SECURITY)\ + ENTRY_EXPANDER(TUSB_CLASS_VIDEO)\ + ENTRY_EXPANDER(TUSB_CLASS_PERSONAL_HEALTHCARE)\ + ENTRY_EXPANDER(TUSB_CLASS_AUDIO_VIDEO)\ + +#define CLASS_LOOKUP_EXPAND(class_code) + +#define CLASS_LOOKUP_INIT_FUNCTION(class_code)\ + +#define CLASS_EXPANDER_INIT(class_code)\ + + + +// TUSB_CLASS_DIAGNOSTIC = 0xDC , +// TUSB_CLASS_WIRELESS_CONTROLLER = 0xE0 , +// TUSB_CLASS_MISC = 0xEF , +// TUSB_CLASS_APPLICATION_SPECIFIC = 0xEF , +// TUSB_CLASS_VENDOR_SPECIFIC = 0xFF + enum { TUSB_FLAGS_CLASS_UNSPECIFIED = BIT_(0) , ///< 0 TUSB_FLAGS_CLASS_AUDIO = BIT_(1) , ///< 1 @@ -119,6 +149,10 @@ typedef uint32_t tusbh_flag_class_t; typedef uint32_t tusb_handle_device_t; typedef uint8_t tusbh_device_status_t; +typedef struct { + void (* const init) (void); + tusb_error_t (* const install_subtask)(uint8_t, uint8_t const *, uint16_t*); +} class_driver_t; //--------------------------------------------------------------------+ // INTERNAL OBJECT & FUNCTION DECLARATION //--------------------------------------------------------------------+ |
