Compaq AA-RNG2A-TE manual Allocating Memory for the softc Data Structure

Models: AA-RNG2A-TE

1 159
Download 159 pages 42.56 Kb
Page 64
Image 64

6Calls the READ_BUS_D16 macro a second time to determine whether the EtherLink III is attached. If the data returned by READ_BUS_D16 is not 0x6d50, calls the printf( ) routine to display an appropriate message on the console terminal.

7Returns the value 0 (zero) to indicate that the probe operation failed.

8Performs tasks related to the ISA bus if bus_type evaluates to the constant BUS_ISA.

9Calls the get_config( ) routine to obtain the base I/O address for the device.

10

11

If get_config( ) is successful, stores the base I/O address in the reg variable.

If get_config( ) is unsuccessful, calls the printf( ) routine to display an appropriate message on the console terminal, then returns the value 0 (zero) to indicate that the probe operation failed.

12

13

Calls the get_config( ) routine to obtain the interrupt request (IRQ) line for the device. If get_config( ) is not successful, el_probe( ) calls the printf( ) routine to display an appropriate message on the console terminal, then returns the value 0 (zero) to indicate that the probe operation failed.

If this is the first ISA 3Com 3C5x9 adapter seen in the system, calls the el_isa_reset_all( ) routine to reset all 3Com 3C5x9 adapters on the ISA bus once to clear any bad state data.

14

Calls the el_isa_activate( ) routine to attempt to activate the lowest addressed adapter on the bus and to configure it with the given base address. If the attempt fails, el_probe( ) calls the printf( ) routine to display an appropriate message on the console terminal, then returns the value 0 (zero) to indicate that the probe operation failed. See the if_el source file (in the examples directory that is installed with the device driver kit) for a listing of the el_isa_activate( ) routine.

15

If the driver is not operating on either the PCMCIA or ISA bus, calls the printf( ) routine to display an appropriate message on the console terminal, then returns the value 0 (zero) to indicate that the probe operation failed.

5.1.4 Allocating Memory for the softc Data Structure

The following code shows how the el_probe( ) routine allocates memory for the if_el device driver’s softc data structure. If the device has already been probed, the driver does not need to allocate the data structure. This can happen if the user removed and then reinserted the device, an operation that is only possible for PCMCIA versions of the adapter.

5–6Implementing the Autoconfiguration Support Section (probe)

Page 64
Image 64
Compaq AA-RNG2A-TE manual Allocating Memory for the softc Data Structure