13

Implementing the Interrupt Section

The interrupt section of a network device driver contains the code that is called whenever the network interface transmits or receives a frame.

The if_el device driver implements the following routines in its interrupt section:

el_intr( ) (Section 13.1)

el_rint( ) (Section 13.2)

el_tint( ) (Section 13.3)

el_error( ) (Section 13.4)

______________________ Note _______________________

The if_el device driver implements a shared interrupt handler. A shared interrupt handler is a driver routine that is registered to take advantage of the shared interrupt framework that Tru64 UNIX provides for hardware devices that share an interrupt line.

The ISA bus does not currently support shared interrupts.

13.1 Implementing the el_intr Routine

The if_el device driver implements an interrupt handler called el_intr( ), which performs the following tasks:

Sets the interrupt and priority level (IPL) and obtains the simple lock (Section 13.1.1)

Rearms the next timeout (Section 13.1.2)

Reads the interrupt status (Section 13.1.3)

Processes completed receive and transmit operations (Section 13.1.4)

Acknowledges the interrupt (Section 13.1.5)

Transmits pending frames (Section 13.1.6)

Releases the simple lock and resets the IPL (Section 13.1.7)

Indicates that the interrupt was serviced (Section 13.1.8)

Implementing the Interrupt Section 13–1

Page 139
Image 139
Compaq AA-RNG2A-TE manual Implementing the Interrupt Section, Implementing the elintr Routine