@@ -84,28 +84,45 @@ struct usbh_code_triple {
84
84
uint8_t proto ;
85
85
};
86
86
87
+ struct usbh_class_data ;
88
+
87
89
/**
88
- * @brief USB host class data and class instance API
90
+ * @brief USB host class instance API
91
+ */
92
+ struct usbh_class_api {
93
+ /** Initialization of the class implementation */
94
+ int (* init )(struct usbh_class_data * const c_data );
95
+ /** Request completion event handler */
96
+ int (* request )(struct usbh_class_data * const c_data ,
97
+ struct uhc_transfer * const xfer , int err );
98
+ /** Device connected handler */
99
+ int (* connected )(struct usbh_class_data * const c_data ,
100
+ void * const desc_start_addr ,
101
+ void * const desc_end_addr );
102
+ /** Device removed handler */
103
+ int (* removed )(struct usbh_class_data * const c_data );
104
+ /** Bus remote wakeup handler */
105
+ int (* rwup )(struct usbh_class_data * const c_data );
106
+ /** Bus suspended handler */
107
+ int (* suspended )(struct usbh_class_data * const c_data );
108
+ /** Bus resumed handler */
109
+ int (* resumed )(struct usbh_class_data * const c_data );
110
+ };
111
+
112
+ /**
113
+ * @brief USB host class instance data
89
114
*/
90
115
struct usbh_class_data {
116
+ /** Name of the USB host class instance */
117
+ const char * name ;
118
+ /** Pointer to USB host stack context structure */
119
+ struct usbh_context * uhs_ctx ;
91
120
/** Class code supported by this instance */
92
121
struct usbh_code_triple code ;
93
-
94
- /** Initialization of the class implementation */
95
- /* int (*init)(struct usbh_context *const uhs_ctx); */
96
- /** Request completion event handler */
97
- int (* request )(struct usbh_context * const uhs_ctx ,
98
- struct uhc_transfer * const xfer , int err );
99
- /** Device connected handler */
100
- int (* connected )(struct usbh_context * const uhs_ctx );
101
- /** Device removed handler */
102
- int (* removed )(struct usbh_context * const uhs_ctx );
103
- /** Bus remote wakeup handler */
104
- int (* rwup )(struct usbh_context * const uhs_ctx );
105
- /** Bus suspended handler */
106
- int (* suspended )(struct usbh_context * const uhs_ctx );
107
- /** Bus resumed handler */
108
- int (* resumed )(struct usbh_context * const uhs_ctx );
122
+ /** Pointer to host support class API */
123
+ struct usbh_class_api * api ;
124
+ /** Pointer to private data */
125
+ void * priv ;
109
126
};
110
127
111
128
/**
0 commit comments