| LPCOpen Platform v1.03 LPCOpen Platform for NXP LPC Microcontrollers

- Main Page
- Modules
- Data Structures
- Files
- Related Pages

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Enumerations | Functions
ConfigDescriptor.h File Reference
`#include "../../../Common/Common.h"`
`#include "USBMode.h"`
`#include "HostStandardReq.h"`
`#include "StdDescriptors.h"`

Go to the source code of this file.

## Macros
#define | DESCRIPTOR_PCAST(DescriptorPtr, Type) ((Type*)(DescriptorPtr))
#define | DESCRIPTOR_CAST(DescriptorPtr, Type) (*DESCRIPTOR_PCAST(DescriptorPtr, Type))
#define | DESCRIPTOR_TYPE(DescriptorPtr) DESCRIPTOR_PCAST(DescriptorPtr, USB_Descriptor_Header_t)->Type
#define | DESCRIPTOR_SIZE(DescriptorPtr) DESCRIPTOR_PCAST(DescriptorPtr, USB_Descriptor_Header_t)->Size

## Typedefs
typedef uint8_t(* | ConfigComparatorPtr_t )(void *)

## Enumerations
enum | USB_Host_GetConfigDescriptor_ErrorCodes_t { HOST_GETCONFIG_Successful = 0, HOST_GETCONFIG_DeviceDisconnect = 1, HOST_GETCONFIG_PipeError = 2, HOST_GETCONFIG_SetupStalled = 3, HOST_GETCONFIG_SoftwareTimeOut = 4, HOST_GETCONFIG_BuffOverflow = 5, HOST_GETCONFIG_InvalidData = 6 }
enum | DSearch_Return_ErrorCodes_t { DESCRIPTOR_SEARCH_Found = 0, DESCRIPTOR_SEARCH_Fail = 1, DESCRIPTOR_SEARCH_NotFound = 2 }
enum | DSearch_Comp_Return_ErrorCodes_t { DESCRIPTOR_SEARCH_COMP_Found = 0, DESCRIPTOR_SEARCH_COMP_Fail = 1, DESCRIPTOR_SEARCH_COMP_EndOfDescriptor = 2 }

## Functions
uint8_t | USB_Host_GetDeviceConfigDescriptor (const uint8_t corenum, const uint8_t ConfigNumber, uint16_t *const ConfigSizePtr, void *const BufferPtr, const uint16_t BufferSize) ATTR_NON_NULL_PTR_ARG(3) ATTR_NON_NULL_PTR_ARG(4)
| Retrieves the configuration descriptor data from an attached device via a standard request into a buffer, including validity and size checking to prevent a buffer overflow.
void | USB_GetNextDescriptorOfType (uint16_t *const BytesRem, void **const CurrConfigLoc, const uint8_t Type) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
| Skips to the next sub-descriptor inside the configuration descriptor of the specified type value. The bytes remaining value is automatically decremented.
void | USB_GetNextDescriptorOfTypeBefore (uint16_t *const BytesRem, void **const CurrConfigLoc, const uint8_t Type, const uint8_t BeforeType) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
| Skips to the next sub-descriptor inside the configuration descriptor of the specified type value, which must come before a descriptor of the second given type value. If the BeforeType type descriptor is reached first, the number of bytes remaining to process is set to zero and the function exits. The bytes remaining value is automatically decremented.
void | USB_GetNextDescriptorOfTypeAfter (uint16_t *const BytesRem, void **const CurrConfigLoc, const uint8_t Type, const uint8_t AfterType) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
| Skips to the next sub-descriptor inside the configuration descriptor of the specified type value, which must come after a descriptor of the second given type value. The bytes remaining value is automatically decremented.
uint8_t | USB_GetNextDescriptorComp (uint16_t *const BytesRem, void **const CurrConfigLoc, ConfigComparatorPtr_t const ComparatorRoutine)
| Searches for the next descriptor in the given configuration descriptor using a pre-made comparator function. The routine updates the position and remaining configuration descriptor bytes values automatically. If a comparator routine fails a search, the descriptor pointer is retreated back so that the next descriptor search invocation will start from the descriptor which first caused the original search to fail. This behaviour allows for one comparator to be used immediately after another has failed, starting the second search from the descriptor which failed the first.
static void | USB_GetNextDescriptor (uint16_t *const BytesRem, void **CurrConfigLoc) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
| Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then points to the next sub-descriptor. The bytes remaining value is automatically decremented.