aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB/LowLevel/DevChapter9.h
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-07-16 08:15:27 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-07-16 08:15:27 +0000
commit37f8a84f35dadf27a6f8997b675238269f854b45 (patch)
treef8c89a44d38f127643ed59add4a8e7c2558e2345 /LUFA/Drivers/USB/LowLevel/DevChapter9.h
parentf85a53a31b00190ad726f509ad275079fc6eb994 (diff)
downloadlufa-37f8a84f35dadf27a6f8997b675238269f854b45.tar.gz
lufa-37f8a84f35dadf27a6f8997b675238269f854b45.tar.bz2
lufa-37f8a84f35dadf27a6f8997b675238269f854b45.zip
Added new TOTAL_NUM_CONFIGURATIONS option, removed USE_SINGLE_DEVICE_CONFIGURATION compile time option (but silently convert it to USE_SINGLE_DEVICE_CONFIGURATION internally for compatibility).
Added new USE_FLASH_DESCRIPTORS compile time option. By default, descriptors can now lie in mixed memory spaces (specified by a new parameter to the CALLBACK_USB_GetDescriptor() function) unless one of the USE_*_DESCRIPTORS compile time option is specified.
Diffstat (limited to 'LUFA/Drivers/USB/LowLevel/DevChapter9.h')
-rw-r--r--LUFA/Drivers/USB/LowLevel/DevChapter9.h33
1 files changed, 28 insertions, 5 deletions
diff --git a/LUFA/Drivers/USB/LowLevel/DevChapter9.h b/LUFA/Drivers/USB/LowLevel/DevChapter9.h
index 2640cbba1..55e3b8253 100644
--- a/LUFA/Drivers/USB/LowLevel/DevChapter9.h
+++ b/LUFA/Drivers/USB/LowLevel/DevChapter9.h
@@ -48,16 +48,33 @@
extern "C" {
#endif
- /* Public Interface - May be used in end-application: */
+ /* Public Interface - May be used in end-application: */
+ /* Macros: */
+ #if defined(USE_SINGLE_DEVICE_CONFIGURATION)
+ #define TOTAL_NUM_CONFIGURATIONS 1
+ #endif
+
+ /* Enums: */
+ #if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
+ /** Enum for the possible descriptor memory spaces, for the MemoryAddressSpace of the
+ * \ref CALLBACK_USB_GetDescriptor() function. This can be used when none of the USE_*_DESCRIPTORS
+ * compile time options are used, to indicate in which memory space the descriptor is stored.
+ *
+ * \ingroup Group_Device
+ */
+ enum USB_DescriptorMemorySpaces_t
+ {
+ MEMSPACE_FLASH = 0, /**< Indicates the requested descriptor is located in FLASH memory */
+ MEMSPACE_EEPROM = 1, /**< Indicates the requested descriptor is located in EEPROM memory */
+ MEMSPACE_RAM = 2, /**< Indicates the requested descriptor is located in RAM memory */
+ };
+ #endif
+
/* Global Variables: */
/** Indicates the currently set configuration number of the device. USB devices may have several
* different configurations which the host can select between; this indicates the currently selected
* value, or 0 if no configuration has been selected.
*
- * If a device has only one single configuration, the token USE_SINGLE_DEVICE_CONFIGURATION may be
- * defined in the project makefile and passed to the compiler using the -D switch. This optimize for
- * a single configuration, saving a small amount of space in the resulting compiled binary.
- *
* \note This variable should be treated as read-only in the user application, and never manually
* changed in value.
*
@@ -87,6 +104,12 @@
#if !defined(__DOXYGEN__)
#if defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS)
#error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
+ #elif defined(USE_RAM_DESCRIPTORS) && defined(USE_FLASH_DESCRIPTORS)
+ #error USE_RAM_DESCRIPTORS and USE_FLASH_DESCRIPTORS are mutually exclusive.
+ #elif defined(USE_FLASH_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS)
+ #error USE_FLASH_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
+ #elif defined(USE_FLASH_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS) && defined(USE_RAM_DESCRIPTORS)
+ #error Only one of the USE_*_DESCRIPTORS modes should be selected.
#endif
/* Function Prototypes: */