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;
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--;
}