From 557a945ba1851bc8d1669bd034464047f50b6691 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 5 Apr 2009 07:00:11 +0000 Subject: [PATCH] Removed all binary constants and replaced with decimal or hexadecimal constants so that unpatched GCC compilers can still build the code without having to be itself patched and recompiled first. --- LUFA/ChangeLog.txt | 2 + LUFA/Drivers/USB/Class/ConfigDescriptor.h | 5 ++ LUFA/Drivers/USB/Class/HIDReportData.h | 64 +++++++++++---------- LUFA/Drivers/USB/HighLevel/StdDescriptors.h | 20 +++---- LUFA/Drivers/USB/HighLevel/StdRequestType.h | 6 +- LUFA/Drivers/USB/LowLevel/Endpoint.h | 2 +- LUFA/Drivers/USB/LowLevel/Host.h | 2 +- LUFA/Drivers/USB/LowLevel/LowLevel.h | 15 ++--- LUFA/Drivers/USB/LowLevel/Pipe.h | 6 +- 9 files changed, 62 insertions(+), 60 deletions(-) diff --git a/LUFA/ChangeLog.txt b/LUFA/ChangeLog.txt index 6d19e79624..b4ecc89515 100644 --- a/LUFA/ChangeLog.txt +++ b/LUFA/ChangeLog.txt @@ -20,6 +20,8 @@ * to early-abort * - Move StdRequestType.h, StreamCallbacks.h, USBMode.h from the LowLevel USB driver directory to the HighLevel USB driver directory, * where they are more suited + * - Removed all binary constants and replaced with decimal or hexadecimal constants so that unpatched GCC compilers can still build the + * code without having to be itself patched and recompiled first * * \section Sec_ChangeLog090401 Version 090401 * diff --git a/LUFA/Drivers/USB/Class/ConfigDescriptor.h b/LUFA/Drivers/USB/Class/ConfigDescriptor.h index d42b71cce0..bd92b51f3a 100644 --- a/LUFA/Drivers/USB/Class/ConfigDescriptor.h +++ b/LUFA/Drivers/USB/Class/ConfigDescriptor.h @@ -52,6 +52,11 @@ /* Public Interface - May be used in end-application: */ /* Macros: */ + /** Mask for determining the type of an endpoint from an endpoint descriptor. This should then be compared + * with the EP_TYPE_* masks to determine the exact type of the endpoint. + */ + #define EP_TYPE_MASK 0x03 + /** Casts a pointer to a descriptor inside the configuration descriptor into a pointer to the given * descriptor type. * diff --git a/LUFA/Drivers/USB/Class/HIDReportData.h b/LUFA/Drivers/USB/Class/HIDReportData.h index 0961cd40cd..b1468a31a6 100644 --- a/LUFA/Drivers/USB/Class/HIDReportData.h +++ b/LUFA/Drivers/USB/Class/HIDReportData.h @@ -90,39 +90,41 @@ /* Private Interface - For use in library only: */ #if !defined(__DOXYGEN__) /* Macros: */ - #define DATA_SIZE_MASK 0b00000011 - #define TYPE_MASK 0b00001100 - #define TAG_MASK 0b11110000 - - #define DATA_SIZE_0 0b00000000 - #define DATA_SIZE_1 0b00000001 - #define DATA_SIZE_2 0b00000010 - #define DATA_SIZE_4 0b00000011 + #define DATA_SIZE_MASK 0x03 + #define TYPE_MASK 0x0C + #define TAG_MASK 0xF0 + + #define DATA_SIZE_0 0x00 + #define DATA_SIZE_1 0x01 + #define DATA_SIZE_2 0x02 + #define DATA_SIZE_4 0x03 - #define TYPE_MAIN 0b00000000 - #define TYPE_GLOBAL 0b00000100 - #define TYPE_LOCAL 0b00001000 + #define TYPE_MAIN 0x00 + #define TYPE_GLOBAL 0x04 + #define TYPE_LOCAL 0x08 - #define TAG_MAIN_INPUT 0b10000000 - #define TAG_MAIN_OUTPUT 0b10010000 - #define TAG_MAIN_COLLECTION 0b10100000 - #define TAG_MAIN_FEATURE 0b10110000 - #define TAG_MAIN_ENDCOLLECTION 0b11000000 - #define TAG_GLOBAL_USAGEPAGE 0b00000000 - #define TAG_GLOBAL_LOGICALMIN 0b00010000 - #define TAG_GLOBAL_LOGICALMAX 0b00100000 - #define TAG_GLOBAL_PHYSMIN 0b00110000 - #define TAG_GLOBAL_PHYSMAX 0b01000000 - #define TAG_GLOBAL_UNITEXP 0b01010000 - #define TAG_GLOBAL_UNIT 0b01100000 - #define TAG_GLOBAL_REPORTSIZE 0b01110000 - #define TAG_GLOBAL_REPORTID 0b10000000 - #define TAG_GLOBAL_REPORTCOUNT 0b10010000 - #define TAG_GLOBAL_PUSH 0b10100000 - #define TAG_GLOBAL_POP 0b10110000 - #define TAG_LOCAL_USAGE 0b00000000 - #define TAG_LOCAL_USAGEMIN 0b00010000 - #define TAG_LOCAL_USAGEMAX 0b00100000 + #define TAG_MAIN_INPUT 0x80 + #define TAG_MAIN_OUTPUT 0x90 + #define TAG_MAIN_COLLECTION 0xA0 + #define TAG_MAIN_FEATURE 0xB0 + #define TAG_MAIN_ENDCOLLECTION 0xC0 + + #define TAG_GLOBAL_USAGEPAGE 0x00 + #define TAG_GLOBAL_LOGICALMIN 0x10 + #define TAG_GLOBAL_LOGICALMAX 0x20 + #define TAG_GLOBAL_PHYSMIN 0x30 + #define TAG_GLOBAL_PHYSMAX 0x40 + #define TAG_GLOBAL_UNITEXP 0x50 + #define TAG_GLOBAL_UNIT 0x60 + #define TAG_GLOBAL_REPORTSIZE 0x70 + #define TAG_GLOBAL_REPORTID 0x80 + #define TAG_GLOBAL_REPORTCOUNT 0x90 + #define TAG_GLOBAL_PUSH 0xA0 + #define TAG_GLOBAL_POP 0xB0 + + #define TAG_LOCAL_USAGE 0x00 + #define TAG_LOCAL_USAGEMIN 0x10 + #define TAG_LOCAL_USAGEMAX 0x20 #endif #endif diff --git a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h index 7a247cbda4..d628363219 100644 --- a/LUFA/Drivers/USB/HighLevel/StdDescriptors.h +++ b/LUFA/Drivers/USB/HighLevel/StdDescriptors.h @@ -108,69 +108,69 @@ * descriptor's ConfigAttributes value to indicate that the specified configuration can draw its power * from the host's VBUS line. */ - #define USB_CONFIG_ATTR_BUSPOWERED 0b10000000 + #define USB_CONFIG_ATTR_BUSPOWERED 0x80 /** Can be masked with other configuration descriptor attributes for a USB_Descriptor_Configuration_Header_t * descriptor's ConfigAttributes value to indicate that the specified configuration can draw its power * from the device's own power source. */ - #define USB_CONFIG_ATTR_SELFPOWERED 0b11000000 + #define USB_CONFIG_ATTR_SELFPOWERED 0xC0 /** Can be masked with other configuration descriptor attributes for a USB_Descriptor_Configuration_Header_t * descriptor's ConfigAttributes value to indicate that the specified configuration supports the * remote wakeup feature of the USB standard, allowing a suspended USB device to wake up the host upon * request. */ - #define USB_CONFIG_ATTR_REMOTEWAKEUP 0b10100000 + #define USB_CONFIG_ATTR_REMOTEWAKEUP 0xA0 /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's * Attributes value to indicate that the specified endpoint is not synchronized. * * \see The USB specification for more details on the possible Endpoint attributes. */ - #define ENDPOINT_ATTR_NO_SYNC (0b00 << 2) + #define ENDPOINT_ATTR_NO_SYNC (0 << 2) /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's * Attributes value to indicate that the specified endpoint is asynchronous. * * \see The USB specification for more details on the possible Endpoint attributes. */ - #define ENDPOINT_ATTR_ASYNC (0b01 << 2) + #define ENDPOINT_ATTR_ASYNC (1 << 2) /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's * Attributes value to indicate that the specified endpoint is adaptive. * * \see The USB specification for more details on the possible Endpoint attributes. */ - #define ENDPOINT_ATTR_ADAPTIVE (0b10 << 2) + #define ENDPOINT_ATTR_ADAPTIVE (2 << 2) /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's * Attributes value to indicate that the specified endpoint is synchronized. * * \see The USB specification for more details on the possible Endpoint attributes. */ - #define ENDPOINT_ATTR_SYNC (0b11 << 2) + #define ENDPOINT_ATTR_SYNC (3 << 2) /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's * Attributes value to indicate that the specified endpoint is used for data transfers. * * \see The USB specification for more details on the possible Endpoint usage attributes. */ - #define ENDPOINT_USAGE_DATA (0b00 << 4) + #define ENDPOINT_USAGE_DATA (0 << 4) /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's * Attributes value to indicate that the specified endpoint is used for feedback. * * \see The USB specification for more details on the possible Endpoint usage attributes. */ - #define ENDPOINT_USAGE_FEEDBACK (0b01 << 4) + #define ENDPOINT_USAGE_FEEDBACK (1 << 4) /** Can be masked with other endpoint descriptor attributes for a USB_Descriptor_Endpoint_t descriptor's * Attributes value to indicate that the specified endpoint is used for implicit feedback. * * \see The USB specification for more details on the possible Endpoint usage attributes. */ - #define ENDPOINT_USAGE_IMPLICIT_FEEDBACK (0b10 << 4) + #define ENDPOINT_USAGE_IMPLICIT_FEEDBACK (2 << 4) /** Gives a void pointer to the specified descriptor (of any type). */ #define DESCRIPTOR_ADDRESS(Descriptor) ((void*)&Descriptor) diff --git a/LUFA/Drivers/USB/HighLevel/StdRequestType.h b/LUFA/Drivers/USB/HighLevel/StdRequestType.h index 02d4fdc58d..423de6d9c9 100644 --- a/LUFA/Drivers/USB/HighLevel/StdRequestType.h +++ b/LUFA/Drivers/USB/HighLevel/StdRequestType.h @@ -44,14 +44,14 @@ * * \see REQDIR_* macros for masks indicating the request data direction. */ - #define CONTROL_REQTYPE_DIRECTION 0b10000000 + #define CONTROL_REQTYPE_DIRECTION 0x80 /** Mask for the request type parameter, to indicate the type of request (Device, Class or Vendor * Specific). The result of this mask should then be compared to the request type masks. * * \see REQTYPE_* macros for masks indicating the request type. */ - #define CONTROL_REQTYPE_TYPE 0b01100000 + #define CONTROL_REQTYPE_TYPE 0x60 /** Mask for the request type parameter, to indicate the recipient of the request (Standard, Class * or Vendor Specific). The result of this mask should then be compared to the request recipient @@ -59,7 +59,7 @@ * * \see REQREC_* macros for masks indicating the request recipient. */ - #define CONTROL_REQTYPE_RECIPIENT 0b00011111 + #define CONTROL_REQTYPE_RECIPIENT 0x1F /** Request data direction mask, indicating that the request data will flow from host to device. * diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.h b/LUFA/Drivers/USB/LowLevel/Endpoint.h index 009d8622db..c0eab3584e 100644 --- a/LUFA/Drivers/USB/LowLevel/Endpoint.h +++ b/LUFA/Drivers/USB/LowLevel/Endpoint.h @@ -95,7 +95,7 @@ /** Endpoint number mask, for masking against endpoint addresses to retrieve the endpoint's * numerical address in the device. */ - #define ENDPOINT_EPNUM_MASK 0b111 + #define ENDPOINT_EPNUM_MASK 0x03 /** Endpoint bank size mask, for masking against endpoint addresses to retrieve the endpoint's * bank size in the device. diff --git a/LUFA/Drivers/USB/LowLevel/Host.h b/LUFA/Drivers/USB/LowLevel/Host.h index 427ed85ee2..18eebfec1d 100644 --- a/LUFA/Drivers/USB/LowLevel/Host.h +++ b/LUFA/Drivers/USB/LowLevel/Host.h @@ -221,7 +221,7 @@ #define USB_Host_VBUS_Auto_Off() MACROS{ OTGCON |= (1 << VBUSRQC); }MACROE #define USB_Host_VBUS_Manual_Off() MACROS{ PORTE &= ~(1 << 7); }MACROE - #define USB_Host_SetDeviceAddress(addr) MACROS{ UHADDR = (addr & 0b01111111); }MACROE + #define USB_Host_SetDeviceAddress(addr) MACROS{ UHADDR = (addr & 0x7F); }MACROE /* Enums: */ enum USB_Host_WaitMSErrorCodes_t diff --git a/LUFA/Drivers/USB/LowLevel/LowLevel.h b/LUFA/Drivers/USB/LowLevel/LowLevel.h index 94d8c83c9d..07be4396d2 100644 --- a/LUFA/Drivers/USB/LowLevel/LowLevel.h +++ b/LUFA/Drivers/USB/LowLevel/LowLevel.h @@ -160,32 +160,25 @@ * * \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. */ - #define EP_TYPE_CONTROL 0b00 + #define EP_TYPE_CONTROL 0x00 /** Mask for an ISOCHRONOUS type endpoint or pipe. * * \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. */ - #define EP_TYPE_ISOCHRONOUS 0b01 + #define EP_TYPE_ISOCHRONOUS 0x01 /** Mask for a BULK type endpoint or pipe. * * \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. */ - #define EP_TYPE_BULK 0b10 + #define EP_TYPE_BULK 0x02 /** Mask for an INTERRUPT type endpoint or pipe. * * \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. */ - #define EP_TYPE_INTERRUPT 0b11 - - /** Mask for determining the type of an endpoint or pipe. This should then be compared with the - * EP_TYPE_* macros elsewhere in this module to determine the exact type of the endpoint or pipe. - * - * \note See Endpoint.h and Pipe.h headers for endpoint/pipe functions. - */ - #define EP_TYPE_MASK 0b11 + #define EP_TYPE_INTERRUPT 0x03 #if defined(USB_FULL_CONTROLLER) || defined(USB_MODIFIED_FULL_CONTROLLER) || defined(__DOXYGEN__) /** Returns boolean true if the VBUS line is currently high (i.e. the USB host is supplying power), diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h index a4fdcfd20b..46a10e493c 100644 --- a/LUFA/Drivers/USB/LowLevel/Pipe.h +++ b/LUFA/Drivers/USB/LowLevel/Pipe.h @@ -74,17 +74,17 @@ /** Token mask for Pipe_ConfigurePipe(). This sets the pipe as a SETUP token (for CONTROL type pipes), * which will trigger a control request on the attached device when data is written to the pipe. */ - #define PIPE_TOKEN_SETUP (0b00 << PTOKEN0) + #define PIPE_TOKEN_SETUP (0 << PTOKEN0) /** Token mask for Pipe_ConfigurePipe(). This sets the pipe as a IN token (for non-CONTROL type pipes), * indicating that the pipe data will flow from device to host. */ - #define PIPE_TOKEN_IN (0b01 << PTOKEN0) + #define PIPE_TOKEN_IN (1 << PTOKEN0) /** Token mask for Pipe_ConfigurePipe(). This sets the pipe as a IN token (for non-CONTROL type pipes), * indicating that the pipe data will flow from host to device. */ - #define PIPE_TOKEN_OUT (0b10 << PTOKEN0) + #define PIPE_TOKEN_OUT (2 << PTOKEN0) /** Mask for the bank mode selection for the Pipe_ConfigurePipe() macro. This indicates that the pipe * should have one single bank, which requires less USB FIFO memory but results in slower transfers as