Declaring And Initializing The Driver Data Structure; Defining Driver-Specific Macros - Compaq Tru64 UNIX Installation Manual

Writing network device drivers
Table of Contents

Advertisement

1.2.3 Declaring and Initializing the driver Data Structure

The following code shows how the if_el device driver declares and
initializes the driver data structure with the names of its entry points:
static struct driver eldriver = {
el_probe,
0,
el_attach,
0,
0,
0,
0,
0,
"el",
el_info,
0,
0,
0,
0,
0,
el_unattach,
0
};
Declares and initializes the driver data structure called eldriver.
1
Because a network device driver does not have exposure to the file
system, it does not provide open, close, read, write, and strategy
interfaces. The members of the driver data structure that specify
these entry points are initialized to 0 (zero).
The if_el driver initializes the following members to nonzero values:
probe, which specifies the driver's probe interface, el_probe
cattach, which specifies the driver's controller attach interface,
el_attach
ctlr_name, which specifies the controller name, el
ctlr_list, which specifies a pointer to the array of pointers to
controller data structures, el_info
ctlr_unattach, which specifies the driver's controller unattach
interface, el_unattach

1.2.4 Defining Driver-Specific Macros

To help you write more portable device drivers, Tru64 UNIX provides the
following kernel routines, which allow you to read from and write to a
control status register (CSR) address without directly accessing its device
registers. These macros call the read_io_port( ) or write_io_port( )
generic routines.
1
Network Device Driver Environment 1–7

Advertisement

Table of Contents
loading

Table of Contents