Fixed AVRISP-MKII Clone compile warning on AVR8 U4 targets even when NO_VTARGET_DETEC...
[pub/USBasp.git] / LUFA / Drivers / USB / Core / HostStandardReq.c
index a9451ff..ee5d8cb 100644 (file)
@@ -55,12 +55,19 @@ uint8_t USB_Host_SendControlRequest(void* const BufferPtr)
 
        Pipe_Unfreeze();
 
+       #if defined(ARCH_BIG_ENDIAN)
        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);
+       #else
+       uint8_t* HeaderStream = (uint8_t*)&USB_ControlRequest;
 
+       for (uint8_t HeaderByte = 0; HeaderByte < sizeof(USB_Request_Header_t); HeaderByte++)
+         Pipe_Write_8(*(HeaderStream++));      
+       #endif
+       
        Pipe_ClearSETUP();
 
        if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_SetupSent)) != HOST_SENDCONTROL_Successful)
@@ -238,14 +245,30 @@ uint8_t USB_Host_GetDeviceStringDescriptor(const uint8_t Index,
        return USB_Host_SendControlRequest(Buffer);
 }
 
-uint8_t USB_Host_ClearPipeStall(const uint8_t EndpointNum)
+uint8_t USB_Host_GetDeviceStatus(uint8_t* const FeatureStatus)
+{
+       USB_ControlRequest = (USB_Request_Header_t)
+               {
+                       .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),
+                       .bRequest      = REQ_GetStatus,
+                       .wValue        = 0,
+                       .wIndex        = 0,
+                       .wLength       = 0,
+               };
+
+       Pipe_SelectPipe(PIPE_CONTROLPIPE);
+
+       return USB_Host_SendControlRequest(FeatureStatus);
+}
+
+uint8_t USB_Host_ClearEndpointStall(const uint8_t EndpointAddress)
 {
        USB_ControlRequest = (USB_Request_Header_t)
                {
                        .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_ENDPOINT),
                        .bRequest      = REQ_ClearFeature,
                        .wValue        = FEATURE_SEL_EndpointHalt,
-                       .wIndex        = EndpointNum,
+                       .wIndex        = EndpointAddress,
                        .wLength       = 0,
                };