Compaq AA-RNG2A-TE Network Card User Manual


 
8
Implementing the Initialization Section
The initialization section prepares the network interface to transmit and
receive data packets. It can also allocate mbuf data structures for the
receive ring.
The if_el device driver implements the following routines in its
initialization section:
el_init (Section 8.1)
el_init_locked (Section 8.2)
8.1 Implementing the el_init Routine
The el_init( ) routine is a jacket routine that performs the following tasks:
Determines whether the PCMCIA card is in the slot (Section 8.1.2)
Sets the IPL and obtains the simple lock (Section 8.1.3)
Calls the el_init_locked( ) routine to perform the initialization
(Section 8.1.4)
Releases the simple lock and resets the IPL (Section 8.1.5)
Returns the status from el_init_locked( ) (Section 8.1.6)
8.1.1 Setting Up the el_init Routine
The following code shows how to set up the el_init( ) routine:
static int el_init(int unit) 1
{
register struct el_softc *sc = el_softc[unit];
2
register struct ifnet *ifp = &sc->is_if; 3
int i, s; 4
1 Specifies the unit number of the network interface as the only argument
to el_init( ).
2 Declares a pointer to the el_softc data structure called sc and
initializes it to the el_softc data structure for this device. The
controller number (which is stored in the unit variable) is used as an
index into the array of el_softc data structures to determine which
el_softc data structure is for this device.
Implementing the Initialization Section 81