Commit d784baaa authored by Dean Camera's avatar Dean Camera
Browse files

Fixed compile error when FIXED_CONTROL_ENDPOINT_SIZE compile time option was...

Fixed compile error when FIXED_CONTROL_ENDPOINT_SIZE compile time option was disabled, and a USE_*_DESCRIPTORS compile time option was not enabled on the AVR8s.

Add C++ compatibility to some header files currently missing extern "C" linkage.
parent dab7e06a
...@@ -75,6 +75,11 @@ ...@@ -75,6 +75,11 @@
#include "Attributes.h" #include "Attributes.h"
#include "BoardTypes.h" #include "BoardTypes.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Architecture specific utility includes: */ /* Architecture specific utility includes: */
#if defined(__DOXYGEN__) #if defined(__DOXYGEN__)
/** Type define for an unsigned integer the same width as the selected architecture's machine register. /** Type define for an unsigned integer the same width as the selected architecture's machine register.
...@@ -394,6 +399,11 @@ ...@@ -394,6 +399,11 @@
GCC_MEMORY_BARRIER(); GCC_MEMORY_BARRIER();
} }
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -56,6 +56,11 @@ ...@@ -56,6 +56,11 @@
#ifndef __LUFA_ENDIANNESS_H__ #ifndef __LUFA_ENDIANNESS_H__
#define __LUFA_ENDIANNESS_H__ #define __LUFA_ENDIANNESS_H__
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_COMMON_H) #if !defined(__INCLUDE_FROM_COMMON_H)
#error Do not include this file directly. Include LUFA/Common/Common.h instead to gain this functionality. #error Do not include this file directly. Include LUFA/Common/Common.h instead to gain this functionality.
...@@ -461,6 +466,11 @@ ...@@ -461,6 +466,11 @@
} }
} }
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
...@@ -96,6 +96,11 @@ ...@@ -96,6 +96,11 @@
/* Includes: */ /* Includes: */
#include "../../Common/Common.h" #include "../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Type Defines: */ /* Type Defines: */
/** \brief Ring Buffer Management Structure. /** \brief Ring Buffer Management Structure.
* *
...@@ -261,6 +266,11 @@ ...@@ -261,6 +266,11 @@
return *Buffer->Out; return *Buffer->Out;
} }
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -54,6 +54,11 @@ ...@@ -54,6 +54,11 @@
#include "../../Core/StdDescriptors.h" #include "../../Core/StdDescriptors.h"
#include "HIDParser.h" #include "HIDParser.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_HID_DRIVER) #if !defined(__INCLUDE_FROM_HID_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB.h instead.
...@@ -634,6 +639,11 @@ ...@@ -634,6 +639,11 @@
/** Type define for the data type used to store HID report descriptor elements. */ /** Type define for the data type used to store HID report descriptor elements. */
typedef uint8_t USB_Descriptor_HIDReport_Datatype_t; typedef uint8_t USB_Descriptor_HIDReport_Datatype_t;
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -54,6 +54,11 @@ ...@@ -54,6 +54,11 @@
#include "../USBInterrupt.h" #include "../USBInterrupt.h"
#include "../Endpoint.h" #include "../Endpoint.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -234,6 +239,11 @@ ...@@ -234,6 +239,11 @@
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -51,6 +51,11 @@ ...@@ -51,6 +51,11 @@
/* Includes: */ /* Includes: */
#include "../../../../Common/Common.h" #include "../../../../Common/Common.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -143,6 +148,11 @@ ...@@ -143,6 +148,11 @@
return ((OTGCON & (1 << HNPREQ)) ? true : false); return ((OTGCON & (1 << HNPREQ)) ? true : false);
} }
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -192,6 +192,20 @@ static void USB_Init_Device(void) ...@@ -192,6 +192,20 @@ static void USB_Init_Device(void)
#if !defined(FIXED_CONTROL_ENDPOINT_SIZE) #if !defined(FIXED_CONTROL_ENDPOINT_SIZE)
USB_Descriptor_Device_t* DeviceDescriptorPtr; USB_Descriptor_Device_t* DeviceDescriptorPtr;
#if defined(ARCH_HAS_MULTI_ADDRESS_SPACE) && \
!(defined(USE_FLASH_DESCRIPTORS) || defined(USE_EEPROM_DESCRIPTORS) || defined(USE_RAM_DESCRIPTORS))
uint8_t DescriptorAddressSpace;
if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr, &DescriptorAddressSpace) != NO_DESCRIPTOR)
{
if (DescriptorAddressSpace == MEMSPACE_FLASH)
USB_ControlEndpointSize = pgm_read_byte(&DeviceDescriptorPtr->Endpoint0Size);
else if (DescriptorAddressSpace == MEMSPACE_EEPROM)
USB_ControlEndpointSize = eeprom_read_byte(&DeviceDescriptorPtr->Endpoint0Size);
else
USB_ControlEndpointSize = DeviceDescriptorPtr->Endpoint0Size;
}
#else
if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR) if (CALLBACK_USB_GetDescriptor((DTYPE_Device << 8), 0, (void*)&DeviceDescriptorPtr) != NO_DESCRIPTOR)
{ {
#if defined(USE_RAM_DESCRIPTORS) #if defined(USE_RAM_DESCRIPTORS)
...@@ -203,6 +217,7 @@ static void USB_Init_Device(void) ...@@ -203,6 +217,7 @@ static void USB_Init_Device(void)
#endif #endif
} }
#endif #endif
#endif
#if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)) #if (defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR))
if (USB_Options & USB_DEVICE_OPT_LOWSPEED) if (USB_Options & USB_DEVICE_OPT_LOWSPEED)
......
...@@ -118,7 +118,7 @@ void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem, ...@@ -118,7 +118,7 @@ void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem,
uint8_t USB_GetNextDescriptorComp(uint16_t* const BytesRem, uint8_t USB_GetNextDescriptorComp(uint16_t* const BytesRem,
void** const CurrConfigLoc, void** const CurrConfigLoc,
const ConfigComparatorPtr_t const ComparatorRoutine) ConfigComparatorPtr_t const ComparatorRoutine)
{ {
uint8_t ErrorCode; uint8_t ErrorCode;
......
...@@ -256,7 +256,7 @@ ...@@ -256,7 +256,7 @@
*/ */
uint8_t USB_GetNextDescriptorComp(uint16_t* const BytesRem, uint8_t USB_GetNextDescriptorComp(uint16_t* const BytesRem,
void** const CurrConfigLoc, void** const CurrConfigLoc,
const ConfigComparatorPtr_t const ComparatorRoutine); ConfigComparatorPtr_t const ComparatorRoutine);
/* Inline Functions: */ /* Inline Functions: */
/** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then /** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then
......
...@@ -56,6 +56,11 @@ ...@@ -56,6 +56,11 @@
#include "USBInterrupt.h" #include "USBInterrupt.h"
#include "Endpoint.h" #include "Endpoint.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -141,6 +146,11 @@ ...@@ -141,6 +146,11 @@
#include "UC3/Device_UC3.h" #include "UC3/Device_UC3.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -76,6 +76,11 @@ ...@@ -76,6 +76,11 @@
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
#include "USBMode.h" #include "USBMode.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -105,6 +110,11 @@ ...@@ -105,6 +110,11 @@
#include "UC3/Endpoint_UC3.h" #include "UC3/Endpoint_UC3.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -53,6 +53,11 @@ ...@@ -53,6 +53,11 @@
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
#include "USBMode.h" #include "USBMode.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -106,6 +111,11 @@ ...@@ -106,6 +111,11 @@
#include "UC3/EndpointStream_UC3.h" #include "UC3/EndpointStream_UC3.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -53,6 +53,11 @@ ...@@ -53,6 +53,11 @@
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
#include "USBMode.h" #include "USBMode.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -169,6 +174,11 @@ ...@@ -169,6 +174,11 @@
#include "UC3/Host_UC3.h" #include "UC3/Host_UC3.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -54,6 +54,11 @@ ...@@ -54,6 +54,11 @@
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
#include "USBMode.h" #include "USBMode.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -64,6 +69,11 @@ ...@@ -64,6 +69,11 @@
#include "AVR8/OTG_AVR8.h" #include "AVR8/OTG_AVR8.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -86,6 +86,11 @@ ...@@ -86,6 +86,11 @@
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
#include "USBMode.h" #include "USBMode.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -120,6 +125,11 @@ ...@@ -120,6 +125,11 @@
#include "UC3/Pipe_UC3.h" #include "UC3/Pipe_UC3.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -89,6 +89,11 @@ ...@@ -89,6 +89,11 @@
#include "UC3/PipeStream_UC3.h" #include "UC3/PipeStream_UC3.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -53,6 +53,11 @@ ...@@ -53,6 +53,11 @@
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
#include "USBMode.h" #include "USBMode.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -242,6 +247,11 @@ ...@@ -242,6 +247,11 @@
#define FEATURE_REMOTE_WAKEUP_ENABLED (1 << 1) #define FEATURE_REMOTE_WAKEUP_ENABLED (1 << 1)
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -54,6 +54,11 @@ ...@@ -54,6 +54,11 @@
#include "../USBInterrupt.h" #include "../USBInterrupt.h"
#include "../Endpoint.h" #include "../Endpoint.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -222,6 +227,11 @@ ...@@ -222,6 +227,11 @@
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -52,6 +52,11 @@ ...@@ -52,6 +52,11 @@
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
#include "USBMode.h" #include "USBMode.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks and Defines: */ /* Preprocessor Checks and Defines: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -64,6 +69,11 @@ ...@@ -64,6 +69,11 @@
#include "UC3/USBController_UC3.h" #include "UC3/USBController_UC3.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
/** @} */ /** @} */
......
...@@ -45,6 +45,11 @@ ...@@ -45,6 +45,11 @@
#include "../../../Common/Common.h" #include "../../../Common/Common.h"
#include "USBMode.h" #include "USBMode.h"
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
#endif
/* Preprocessor Checks: */ /* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_USB_DRIVER) #if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead. #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
...@@ -57,5 +62,10 @@ ...@@ -57,5 +62,10 @@
#include "UC3/USBInterrupt_UC3.h" #include "UC3/USBInterrupt_UC3.h"
#endif #endif
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
}
#endif
#endif #endif
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment