static void continueMessageQueue(int _ep) { USBMessageQueue *q = usb_message_queue[_ep]; if(q != NULL) { usbTxRx(_ep, q->dir, q->type, q->data, q->dataLen); if(q->dir == USBIn) { ringBufferEnqueue(txQueue, _ep); advanceTxQueue(); } } }
void usb_receive_interrupt(uint8_t endpoint, void* buffer, int bufferLen) { usbTxRx(endpoint, USBOut, USBInterrupt, buffer, bufferLen); }
void usb_receive_bulk(uint8_t endpoint, void* buffer, int bufferLen) { usbTxRx(endpoint, USBOut, USBBulk, buffer, bufferLen); }
void usb_send_interrupt(uint8_t endpoint, void* buffer, int bufferLen) { usbTxRx(endpoint, USBIn, USBInterrupt, buffer, bufferLen); ringBufferEnqueue(txQueue, endpoint); advanceTxQueue(); }
static void sendControl(void* buffer, int bufferLen) { usbTxRx(USB_CONTROLEP, USBIn, USBControl, buffer, bufferLen); ringBufferEnqueue(txQueue, USB_CONTROLEP); advanceTxQueue(); }