ConfigDescriptor.h File Reference

#include <avr/io.h>
#include "../../../Common/Common.h"
#include "../HighLevel/USBMode.h"
#include "../LowLevel/HostChapter9.h"
#include "../HighLevel/StdDescriptors.h"

Defines

#define EP_TYPE_MASK   0x03
#define DESCRIPTOR_PCAST(DescriptorPtr, Type)   ((Type*)(DescriptorPtr))
#define DESCRIPTOR_CAST(DescriptorPtr, Type)   (*DESCRIPTOR_PCAST(DescriptorPtr, Type))
#define DESCRIPTOR_TYPE(DescriptorPtr)   DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).Type
#define DESCRIPTOR_SIZE(DescriptorPtr)   DESCRIPTOR_CAST(DescriptorPtr, USB_Descriptor_Header_t).Size

Typedefs

typedef uint8_t(*const 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_GetNextDescriptorComp (uint16_t *BytesRem, void **CurrConfigLoc, ConfigComparatorPtr_t ComparatorRoutine)
uint8_t USB_Host_GetDeviceConfigDescriptor (uint8_t ConfigNumber, uint16_t *const ConfigSizePtr, void *BufferPtr, uint16_t BufferSize) ATTR_NON_NULL_PTR_ARG(2) ATTR_NON_NULL_PTR_ARG(3)
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)
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)
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)
static void USB_GetNextDescriptor (uint16_t *const BytesRem, void **const CurrConfigLoc) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)

Detailed Description

Configuration descriptor parser API. This section of the library gives a friendly API which can be used in host applications to easily parse an attached device's configuration descriptor so that endpoint, interface and other descriptor data can be extracted and used as needed.


Generated by  doxygen 1.6.2