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