LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
RNDISClassHost.h File Reference

Go to the source code of this file.

Data Structures

struct  USB_ClassInfo_RNDIS_Host_t
 RNDIS Class Host Mode Configuration and State Structure. More...
 

Enumerations

enum  RNDIS_Host_EnumerationFailure_ErrorCodes_t { RNDIS_ENUMERROR_NoError = 0, RNDIS_ENUMERROR_InvalidConfigDescriptor = 1, RNDIS_ENUMERROR_NoCompatibleInterfaceFound = 2, RNDIS_ENUMERROR_PipeConfigurationFailed = 3 }
 

Functions

uint8_t RNDIS_Host_ConfigurePipes (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo, uint16_t ConfigDescriptorSize, void *DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3)
 Host interface configuration routine, to configure a given RNDIS host interface instance using the Configuration Descriptor read from an attached USB device. This function automatically updates the given RNDIS Host instance's state values and configures the pipes required to communicate with the interface if it is found within the device. This should be called once after the stack has enumerated the attached device, while the host state machine is in the Addressed state.
 
uint8_t RNDIS_Host_SendKeepAlive (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
 Sends a RNDIS KEEPALIVE command to the device, to ensure that it does not enter standby mode after periods of long inactivity.
 
uint8_t RNDIS_Host_InitializeDevice (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
 Initializes the attached RNDIS device's RNDIS interface. This should be called after the device's pipes have been configured via the call to RNDIS_Host_ConfigurePipes().
 
uint8_t RNDIS_Host_SetRNDISProperty (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo, const uint32_t Oid, void *Buffer, const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3)
 Sets a given RNDIS property of an attached RNDIS device.
 
uint8_t RNDIS_Host_QueryRNDISProperty (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo, const uint32_t Oid, void *Buffer, const uint16_t MaxLength) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3)
 Gets a given RNDIS property of an attached RNDIS device.
 
bool RNDIS_Host_IsPacketReceived (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
 Determines if a packet is currently waiting for the host to read in and process.
 
uint8_t RNDIS_Host_ReadPacket (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo, void *Buffer, uint16_t *const PacketLength) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) ATTR_NON_NULL_PTR_ARG(3)
 Retrieves the next pending packet from the device, discarding the remainder of the RNDIS packet header to leave only the packet contents for processing by the host in the nominated buffer.
 
uint8_t RNDIS_Host_SendPacket (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo, void *Buffer, const uint16_t PacketLength) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
 Sends the given packet to the attached RNDIS device, after adding a RNDIS packet message header.
 
static void RNDIS_Host_USBTask (USB_ClassInfo_RNDIS_Host_t *const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1) ATTR_ALWAYS_INLINE
 General management task for a given RNDIS host class interface, required for the correct operation of the interface. This should be called frequently in the main program loop, before the master USB management task USB_USBTask().