![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IXP425 USB RNDIS End Driver Codelet (IxUSBRNDIS) APIIXP425 codelet for RNDIS End API.
More... |
Defines | |
#define | RNDIS_END_INET_ADDR |
RNDIS END driver with inet address. | |
#define | RNDIS_END_MAC_ADDRESS |
RNDIS END driver with MAC address. | |
Functions | |
PUBLIC STATUS | ixUSBRNDISStart (void) |
Starts the RNDIS component. | |
PUBLIC void | rndisInt (void *pDrvCtrl, int packet) |
RNDIS END hook for receiving packets. |
Description of the RNDIS End driver
Running the codelet in Linux.
Running the codelet in VxWorks big endian.
Running the codelet in VxWorks little endian.
The codelet is executed by calling the ixUSBRNDISStart function. No parameters are needed to be passed in. The start function first loads and initializes the device driver. It then goes on to load the device driver into the MUX. The function then goes on to call muxDevStart() passing in the called earlier. muxDevStart start the device that has already been initialized and handles registering the driver's interrupt service routine and anything else necessary to handle receiving and transmitting. The function finally assigns an IP address to the RNDIS interface.
Overview of IxRNDISEnd.c
Description of macros.
In this example driver the macros RNDIS_OUT_SHORT and RNDIS_IN_SHORT are sample macros to read/write data to a mock device. If a device communicates through formatted control blocks in shared memory, the accesses to those control blocks should also be through redefinable macros.
The macros SYS_INT_CONNECT, SYS_INT_DISCONNECT, and SYS_INT_ENABLE allow the driver to be customized for BSPs that use special versions of these routines.
The macro SYS_INT_CONNECT is used to connect the interrupt handler to the appropriate vector. By default it is the routine intConnect().
The macro SYS_INT_DISCONNECT is used to disconnect the interrupt handler prior to unloading the module. By default this is a dummy routine that returns OK.
The macro SYS_INT_ENABLE is used to enable the interrupt level for the end device. It is called once during initialization. By default this is the routine sysLanIntEnable(), defined in the module sysLib.o.
The macro SYS_ENET_ADDR_GET is used to get the ethernet address (MAC) for the device. The single argument to this routine is the END_DEVICE pointer. By default this routine copies the ethernet address stored in the global variable sysTemplateEnetAddr into the END_DEVICE structure.
Brief overview of the APIs. ixUSBRNDISStart()
END_OBJ* rndisLoad ( char* initString, void *unused )
rndisParse ( END_DEVICE * pDrvCtrl, char * initString )
rndisMemInit ( END_DEVICE * pDrvCtrl )
rndisStart ( END_OBJ * pDrvCtrl )
rndisRecv ( END_DEVICE *pDrvCtrl, M_BLK_ID packet )
rndisHandleRcvInt ( END_DEVICE *pDrvCtrl, M_BLK_ID packet )
rndisSend ( END_DEVICE * pDrvCtrl, M_BLK_ID pMblk )
rndisIoctl ( END_DEVICE * pDrvCtrl, int cmd, caddr_t data )
rndisConfig ( END_DEVICE *pDrvCtrl )
rndisAddrFilterSet ( END_DEVICE *pDrvCtrl )
rndisPollRcv ( END_DEVICE * pDrvCtrl, M_BLK_ID pMblk )
rndisPollSend ( END_DEVICE* pDrvCtrl, M_BLK_ID pMblk )
rndisMCastAdd ( END_DEVICE *pDrvCtrl char* pAddress )
rndisMCastDel ( END_DEVICE *pDrvCtrl, char* pAddress )
rndisMCastGet ( END_DEVICE *pDrvCtrl, MULTI_TABLE* pTable )
rndisStop ( END_DEVICE *pDrvCtrl )
rndisUnload ( END_DEVICE* pDrvCtrl )
rndisPollStart ( END_DEVICE * pDrvCtrl )
rndisPollStop ( END_DEVICE * pDrvCtrl )
rndisReset ( END_DEVICE *pDrvCtrl )
|
RNDIS END driver with inet address.
Definition at line 260 of file IxUSBRNDISEnd.h. |
|
RNDIS END driver with MAC address.
Definition at line 267 of file IxUSBRNDISEnd.h. |
|
Starts the RNDIS component.
|
|
RNDIS END hook for receiving packets.
|