1: uhs_status_t Usbh_Api_BulkMsg(
struct usb_control_block* ucb)
2: {
3: uhs_status_t retval =
UDI_OK;
4:
5:
6:
if( Usbh_susres_get_state() != USBH_SUSRES_STS_IDLE ){
7: uhs_debug_print (DBG_ERR, ("ERROR : Don't Call Current State!!"));
8: CORE_REPORT_ERROR(
USBC_ILLEGAL_ERROR );
9:
return UDI_STAT_INVALID_STATE;
10: }
11:
12:
if (( ucb == NULL ) || ( ucb->complete_func == NULL ) || ( ucb->data_len > USB_REQ_MAX_LENGTH )) {
13: CORE_REPORT_ERROR(
USBC_INVALID_PARAMETER );
14:
return UDI_STAT_DATA_ERROR;
15: }
16:
17:
if ( Usbc_Api_GetPipeEpType( ucb->pipe ) !=
USB_TRANS_BULK ) {
18: CORE_REPORT_ERROR(
USBC_INVALID_PIPE );
19:
return UDI_STAT_DATA_ERROR;
20: }
21:
22: 23: retval = Usbh_SendRequest(
24: (
void*)ucb,
25: ucb->usbdev->usbdev_DevNum,
26: USBWRAP_MSG_REQUEST_ISSUE,
27: USBWRAP_SUBMSG_BLKREQ );
28:
29:
if( retval !=
UDI_OK) {
30: CORE_REPORT_ERROR(
USBC_ILLEGAL_ERROR);
31: }
32:
33:
return retval;
34: }