Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Wireless Device Driver Implementation

Description of the Wireless Device Driver API

All device drivers must declare an instance of the appropriate device driver API structure as a global variable within the source code. The API structure is an ordered list of function pointers utilized by µC/TCP-IP when device hardware services are required.

A sample Ethernet interface API structure is shown below.

 

 

Listing 7-24 Ethernet interface API

Note: It is the device driver developers’ responsibility to ensure that all of the functions listed within the API are properly implemented and that the order of the functions within the API structure is correct.

L7-24(1) Device initialization/add function pointer

L7-24(2) Device start function pointer

L7-24(3) Device stop function pointer

L7-24(4) Device Receive function pointer

L7-24(5) Device transmit function pointer

L7-24(6) Device multicast address add function pointer

L7-24(7) Device multicast address remove function pointer

L7-24(8) Device interrupt service routine (ISR) handler function pointer

L7-24(9) Device demultiplex management frame function pointer.

L7-24(10) Device execute management command function pointer.

L7-24(11) Device process management response function pointer.

Note: µC/TCP-IP device driver API function names may not be unique. Name clashes between device drivers are avoided by never globally prototyping device driver functions and ensuring that all references to functions within the driver are obtained by pointers within the API structure. The developer may arbitrarily name the functions within the source file so long as the API structure is properly declared. The user application should never need to call API functions by name. Unless special care is taken, calling device driver functions by name may lead to unpredictable results due to reentrancy.

  • No labels