|
|
@@ -120,50 +120,20 @@ void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr);
|
|
|
void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr);
|
|
|
|
|
|
//--------------------------------------------------------------------+
|
|
|
-// Event API
|
|
|
+// Event API (Implemented by device stack)
|
|
|
//--------------------------------------------------------------------+
|
|
|
|
|
|
// Called by DCD to notify device stack
|
|
|
extern void dcd_event_handler(dcd_event_t const * event, bool in_isr);
|
|
|
|
|
|
// helper to send bus signal event
|
|
|
-static inline void dcd_event_bus_signal (uint8_t rhport, dcd_eventid_t eid, bool in_isr);
|
|
|
+extern void dcd_event_bus_signal (uint8_t rhport, dcd_eventid_t eid, bool in_isr);
|
|
|
|
|
|
// helper to send setup received
|
|
|
-static inline void dcd_event_setup_received(uint8_t rhport, uint8_t const * setup, bool in_isr);
|
|
|
+extern void dcd_event_setup_received(uint8_t rhport, uint8_t const * setup, bool in_isr);
|
|
|
|
|
|
// helper to send transfer complete event
|
|
|
-static inline void dcd_event_xfer_complete (uint8_t rhport, uint8_t ep_addr, uint32_t xferred_bytes, uint8_t result, bool in_isr);
|
|
|
-
|
|
|
-
|
|
|
-//--------------------------------------------------------------------+
|
|
|
-// Inline helper
|
|
|
-//--------------------------------------------------------------------+
|
|
|
-
|
|
|
-static inline void dcd_event_bus_signal (uint8_t rhport, dcd_eventid_t eid, bool in_isr)
|
|
|
-{
|
|
|
- dcd_event_t event = { .rhport = rhport, .event_id = eid, };
|
|
|
- dcd_event_handler(&event, in_isr);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void dcd_event_setup_received(uint8_t rhport, uint8_t const * setup, bool in_isr)
|
|
|
-{
|
|
|
- dcd_event_t event = { .rhport = rhport, .event_id = DCD_EVENT_SETUP_RECEIVED };
|
|
|
- memcpy(&event.setup_received, setup, 8);
|
|
|
-
|
|
|
- dcd_event_handler(&event, in_isr);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void dcd_event_xfer_complete (uint8_t rhport, uint8_t ep_addr, uint32_t xferred_bytes, uint8_t result, bool in_isr)
|
|
|
-{
|
|
|
- dcd_event_t event = { .rhport = rhport, .event_id = DCD_EVENT_XFER_COMPLETE };
|
|
|
-
|
|
|
- event.xfer_complete.ep_addr = ep_addr;
|
|
|
- event.xfer_complete.len = xferred_bytes;
|
|
|
- event.xfer_complete.result = result;
|
|
|
-
|
|
|
- dcd_event_handler(&event, in_isr);
|
|
|
-}
|
|
|
+extern void dcd_event_xfer_complete (uint8_t rhport, uint8_t ep_addr, uint32_t xferred_bytes, uint8_t result, bool in_isr);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
}
|