uint8_t USB_Host_SendControlRequest(void* const BufferPtr)
{
- uint8_t* HeaderStream = (uint8_t*)&USB_ControlRequest;
- uint8_t* DataStream = (uint8_t*)BufferPtr;
- bool BusSuspended = USB_Host_IsBusSuspended();
- uint8_t ReturnStatus = HOST_SENDCONTROL_Successful;
- uint16_t DataLen = USB_ControlRequest.wLength;
+ uint8_t* DataStream = (uint8_t*)BufferPtr;
+ bool BusSuspended = USB_Host_IsBusSuspended();
+ uint8_t ReturnStatus = HOST_SENDCONTROL_Successful;
+ uint16_t DataLen = USB_ControlRequest.wLength;
USB_Host_ResumeBus();
goto End_Of_Control_Send;
Pipe_SetPipeToken(PIPE_TOKEN_SETUP);
- Pipe_ClearErrorFlags();
+ Pipe_ClearError();
Pipe_Unfreeze();
- for (uint8_t HeaderByte = 0; HeaderByte < sizeof(USB_Request_Header_t); HeaderByte++)
- Pipe_Write_Byte(*(HeaderStream++));
+ Pipe_Write_8(USB_ControlRequest.bmRequestType);
+ Pipe_Write_8(USB_ControlRequest.bRequest);
+ Pipe_Write_16_LE(USB_ControlRequest.wValue);
+ Pipe_Write_16_LE(USB_ControlRequest.wIndex);
+ Pipe_Write_16_LE(USB_ControlRequest.wLength);
Pipe_ClearSETUP();
while (Pipe_BytesInPipe() && DataLen)
{
- *(DataStream++) = Pipe_Read_Byte();
+ *(DataStream++) = Pipe_Read_8();
DataLen--;
}
while (DataLen && (Pipe_BytesInPipe() < USB_ControlPipeSize))
{
- Pipe_Write_Byte(*(DataStream++));
+ Pipe_Write_8(*(DataStream++));
DataLen--;
}