Commit 152b2764 authored by Dean Camera's avatar Dean Camera
Browse files

Small tweaks to ConfigDescriptor.c/.h to ensure pointers use the correct type,...

Small tweaks to ConfigDescriptor.c/.h to ensure pointers use the correct type, and to remove const attribute from the descriptor comparator callback function pointer type define, and into the function prototype instead.
parent e95c96ea
...@@ -85,7 +85,9 @@ F_CPU = 8000000 ...@@ -85,7 +85,9 @@ F_CPU = 8000000
F_CLOCK = $(F_CPU) F_CLOCK = $(F_CPU)
# Starting byte address of the bootloader # Starting byte address of the bootloader, as a byte address. Note that the address given
# in the AVRStudio fuse programming dialogue uses word addresses, which will have to be
# doubled to obtain the starting byte address of the bootloader section.
BOOT_START = 0x1E000 BOOT_START = 0x1E000
......
...@@ -85,7 +85,9 @@ F_CPU = 8000000 ...@@ -85,7 +85,9 @@ F_CPU = 8000000
F_CLOCK = $(F_CPU) F_CLOCK = $(F_CPU)
# Starting byte address of the bootloader # Starting byte address of the bootloader, as a byte address. Note that the address given
# in the AVRStudio fuse programming dialogue uses word addresses, which will have to be
# doubled to obtain the starting byte address of the bootloader section.
BOOT_START = 0x1E000 BOOT_START = 0x1E000
......
...@@ -114,17 +114,17 @@ void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem, ...@@ -114,17 +114,17 @@ void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem,
USB_GetNextDescriptorOfType(BytesRem, CurrConfigLoc, Type); USB_GetNextDescriptorOfType(BytesRem, CurrConfigLoc, Type);
} }
uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, void** CurrConfigLoc, ConfigComparatorPtr_t ComparatorRoutine) uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, void** CurrConfigLoc, ConfigComparatorPtr_t const ComparatorRoutine)
{ {
uint8_t ErrorCode; uint8_t ErrorCode;
while (*BytesRem) while (*BytesRem)
{ {
uint8_t* PrevDescLoc = *CurrConfigLoc; void* PrevDescLoc = *CurrConfigLoc;
uint16_t PrevBytesRem = *BytesRem; uint16_t PrevBytesRem = *BytesRem;
USB_GetNextDescriptor(BytesRem, CurrConfigLoc); USB_GetNextDescriptor(BytesRem, CurrConfigLoc);
if ((ErrorCode = ComparatorRoutine(*CurrConfigLoc)) != DESCRIPTOR_SEARCH_NotFound) if ((ErrorCode = ComparatorRoutine(*CurrConfigLoc)) != DESCRIPTOR_SEARCH_NotFound)
{ {
if (ErrorCode == DESCRIPTOR_SEARCH_Fail) if (ErrorCode == DESCRIPTOR_SEARCH_Fail)
......
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
* *
* \see \ref USB_GetNextDescriptorComp function for more details * \see \ref USB_GetNextDescriptorComp function for more details
*/ */
typedef uint8_t (* const ConfigComparatorPtr_t)(void*); typedef uint8_t (* ConfigComparatorPtr_t)(void*);
/* Function Prototypes: */ /* Function Prototypes: */
/** Searches for the next descriptor in the given configuration descriptor using a premade comparator /** Searches for the next descriptor in the given configuration descriptor using a premade comparator
...@@ -161,7 +161,7 @@ ...@@ -161,7 +161,7 @@
* } * }
* \endcode * \endcode
*/ */
uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, void** CurrConfigLoc, ConfigComparatorPtr_t ComparatorRoutine); uint8_t USB_GetNextDescriptorComp(uint16_t* BytesRem, void** CurrConfigLoc, ConfigComparatorPtr_t const ComparatorRoutine);
/* Enums: */ /* Enums: */
/** Enum for the possible return codes of the \ref USB_Host_GetDeviceConfigDescriptor() function. */ /** Enum for the possible return codes of the \ref USB_Host_GetDeviceConfigDescriptor() function. */
...@@ -264,11 +264,9 @@ ...@@ -264,11 +264,9 @@
* \param[in,out] BytesRem Pointer to the number of bytes remaining of the configuration descriptor * \param[in,out] BytesRem Pointer to the number of bytes remaining of the configuration descriptor
* \param[in,out] CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor * \param[in,out] CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
*/ */
static inline void USB_GetNextDescriptor(uint16_t* const BytesRem, static inline void USB_GetNextDescriptor(uint16_t* const BytesRem, void** CurrConfigLoc)
void** const CurrConfigLoc)
ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2); ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2);
static inline void USB_GetNextDescriptor(uint16_t* const BytesRem, static inline void USB_GetNextDescriptor(uint16_t* const BytesRem, void** CurrConfigLoc)
void** const CurrConfigLoc)
{ {
uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size; uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size;
......
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