DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
Network Driver Coding Specifics

shrkudi Driver Architecture

The following figure shows how the UDI NIC sample driver, shrkudi, interacts with the UDI environment on the target system.

shrkudi Driver Architecture


0
Management Metalanguage channel - controls driver configuration and operating conditions; driven by Management Agent.

1-2
Inter-region channel - uses Generic I/O Metalanguage to send status, etc. across regions.

3
Network Metalanguage control channel - initial bind channel between the ND and the NSR.

4
Bus Bridge control channel - initial bind channel between the ND and the Bus Bridge Mapper.

5
Network Metalanguage transmit channel - controls transmit data flow.

6
Network Metalanguage receive channel - controls receive data flow.

7
Bus Bridge Interrupt handler channel - handles interrupt events.

h
PIO handle - used for transmit/setup I/O (not a channel)

The shrkudi driver uses two regions: a primary region that communicates with the Management Agent (MA) and establishes an initial bind channel with the NSR that uses NIM functions to manage the transmission of data over the NIC; and, a secondary region that manages reception of data from the NIC as well as interrupts.

These two regions execute independently, and coordinate their activities over the GIO channel set up between them.

The primary region uses Physical I/O calls as defined in the Physical I/O Specification. to write data from its internal buffers to the NIC. To do this, it requests a ``PIO handle'' from the UDI environment. The PIO handle, while not a channel itself, provides the driver a convenient means of referring to control blocks that tell the environment about the NIC and how to communciate with it over the bus.

The secondary region handles the reception of data from the NIC, and so defines a channel between itself and the NSR. The channel between the bus bridge mapper and the secondary region, while initiated by the driver, is used by the bus bridge mapper when there is an interrupt from the NIC.


Next topic: NIC driver source code
Previous topic: Sample Osicom 2300 NIC Driver (shrkudi)

© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - 19 June 2005