summaryrefslogtreecommitdiff
path: root/tinyusb/host/usbh.h
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-03-09 13:11:02 +0700
committerhathach <[email protected]>2013-03-09 13:11:02 +0700
commitb1db85dedf5546bee594a40ba41cf644bf7b3ae0 (patch)
tree186060e03f943865bcdbea2e77efce19396279af /tinyusb/host/usbh.h
parentb146730306ff9f5e3d8dea520a62a5a25d33f92b (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.h34
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
//--------------------------------------------------------------------+