Use immediate variable expansion in the second-deepest level makefile scripts to...
[pub/USBasp.git] / Projects / XPLAINBridge / USARTDescriptors.c
index 6c131af..2a96c14 100644 (file)
 
 #include "USARTDescriptors.h"
 
-/* On some devices, there is a factory set internal serial number which can be automatically sent to the host as
- * the device's serial number when the Device Descriptor's .SerialNumStrIndex entry is set to USE_INTERNAL_SERIAL.
- * This allows the host to track a device across insertions on different ports, allowing them to retain allocated
- * resources like COM port numbers and drivers. On demos using this feature, give a warning on unsupported devices
- * so that the user can supply their own serial number descriptor instead or remove the USE_INTERNAL_SERIAL value
- * from the Device Descriptor (forcing the host to generate a serial number for each device from the VID, PID and
- * port location).
- */
-#if (USE_INTERNAL_SERIAL == NO_DESCRIPTOR)
-       #warning USE_INTERNAL_SERIAL is not available on this AVR - please manually construct a device serial descriptor.
-#endif
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
  *  device characteristics, including the supported USB version, control endpoint size and the
@@ -224,7 +213,8 @@ const USB_Descriptor_String_t PROGMEM USART_ProductString =
  */
 uint16_t USART_GetDescriptor(const uint16_t wValue,
                              const uint8_t wIndex,
-                             const void** const DescriptorAddress)
+                             const void** const DescriptorAddress,
+                             uint8_t* const DescriptorMemorySpace)
 {
        const uint8_t  DescriptorType   = (wValue >> 8);
        const uint8_t  DescriptorNumber = (wValue & 0xFF);
@@ -232,6 +222,8 @@ uint16_t USART_GetDescriptor(const uint16_t wValue,
        const void* Address = NULL;
        uint16_t    Size    = NO_DESCRIPTOR;
 
+       *DescriptorMemorySpace = MEMSPACE_FLASH;
+       
        switch (DescriptorType)
        {
                case DTYPE_Device: