Pull out common options in the StaticAnalysisTest build test makefile into a seperate...
[pub/USBasp.git] / LUFA / Drivers / USB / Core / DeviceStandardReq.c
index c3a111e..61082cf 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2011.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -48,11 +48,18 @@ bool    USB_Device_RemoteWakeupEnabled;
 
 void USB_Device_ProcessControlRequest(void)
 {
 
 void USB_Device_ProcessControlRequest(void)
 {
+       #if defined(ARCH_BIG_ENDIAN)
        USB_ControlRequest.bmRequestType = Endpoint_Read_8();
        USB_ControlRequest.bRequest      = Endpoint_Read_8();
        USB_ControlRequest.wValue        = Endpoint_Read_16_LE();
        USB_ControlRequest.wIndex        = Endpoint_Read_16_LE();
        USB_ControlRequest.wLength       = Endpoint_Read_16_LE();
        USB_ControlRequest.bmRequestType = Endpoint_Read_8();
        USB_ControlRequest.bRequest      = Endpoint_Read_8();
        USB_ControlRequest.wValue        = Endpoint_Read_16_LE();
        USB_ControlRequest.wIndex        = Endpoint_Read_16_LE();
        USB_ControlRequest.wLength       = Endpoint_Read_16_LE();
+       #else
+       uint8_t* RequestHeader = (uint8_t*)&USB_ControlRequest;
+
+       for (uint8_t RequestHeaderByte = 0; RequestHeaderByte < sizeof(USB_Request_Header_t); RequestHeaderByte++)
+         *(RequestHeader++) = Endpoint_Read_8();
+       #endif
 
        EVENT_USB_Device_ControlRequest();
 
 
        EVENT_USB_Device_ControlRequest();
 
@@ -117,7 +124,7 @@ static void USB_Device_SetAddress(void)
        uint8_t    DeviceAddress    = (USB_ControlRequest.wValue & 0x7F);
        uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
        GlobalInterruptDisable();
        uint8_t    DeviceAddress    = (USB_ControlRequest.wValue & 0x7F);
        uint_reg_t CurrentGlobalInt = GetGlobalInterruptMask();
        GlobalInterruptDisable();
-                               
+
        Endpoint_ClearSETUP();
 
        Endpoint_ClearStatusStage();
        Endpoint_ClearSETUP();
 
        Endpoint_ClearStatusStage();
@@ -126,7 +133,7 @@ static void USB_Device_SetAddress(void)
 
        USB_Device_SetDeviceAddress(DeviceAddress);
        USB_DeviceState = (DeviceAddress) ? DEVICE_STATE_Addressed : DEVICE_STATE_Default;
 
        USB_Device_SetDeviceAddress(DeviceAddress);
        USB_DeviceState = (DeviceAddress) ? DEVICE_STATE_Addressed : DEVICE_STATE_Default;
-       
+
        SetGlobalInterruptMask(CurrentGlobalInt);
 }
 
        SetGlobalInterruptMask(CurrentGlobalInt);
 }
 
@@ -149,7 +156,7 @@ static void USB_Device_SetConfiguration(void)
                        uint8_t MemoryAddressSpace;
                #endif
        #endif
                        uint8_t MemoryAddressSpace;
                #endif
        #endif
-       
+
        if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr
        #if defined(ARCH_HAS_MULTI_ADDRESS_SPACE) && \
            !(defined(USE_FLASH_DESCRIPTORS) || defined(USE_EEPROM_DESCRIPTORS) || defined(USE_RAM_DESCRIPTORS))
        if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DevDescriptorPtr
        #if defined(ARCH_HAS_MULTI_ADDRESS_SPACE) && \
            !(defined(USE_FLASH_DESCRIPTORS) || defined(USE_EEPROM_DESCRIPTORS) || defined(USE_RAM_DESCRIPTORS))
@@ -178,7 +185,7 @@ static void USB_Device_SetConfiguration(void)
        }
        #else
        if ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations)
        }
        #else
        if ((uint8_t)USB_ControlRequest.wValue > DevDescriptorPtr->NumberOfConfigurations)
-         return;       
+         return;
        #endif
        #endif
 
        #endif
        #endif
 
@@ -217,7 +224,7 @@ static void USB_Device_GetInternalSerialDescriptor(void)
 
        SignatureDescriptor.Header.Type = DTYPE_String;
        SignatureDescriptor.Header.Size = USB_STRING_LEN(INTERNAL_SERIAL_LENGTH_BITS / 4);
 
        SignatureDescriptor.Header.Type = DTYPE_String;
        SignatureDescriptor.Header.Size = USB_STRING_LEN(INTERNAL_SERIAL_LENGTH_BITS / 4);
-       
+
        USB_Device_GetSerialString(SignatureDescriptor.UnicodeString);
 
        Endpoint_ClearSETUP();
        USB_Device_GetSerialString(SignatureDescriptor.UnicodeString);
 
        Endpoint_ClearSETUP();