6.5 Printing a Success Message
The following code shows how the
el_attach( )
routine prints a success
message:
printf("el%d: %s, hardware address: %s\n", unit,
ifp->if_version, ether_sprintf(sc->is_addr));
1
1
Calls the
printf( )
routine to display the following information
message on the console terminal:
•
The controller number that is stored in the
unit
variable.
•
The version of the network interface that is stored in the
if_version
member of the
ifnet
data structure pointer.
•
The hardware address that is accessed through the
is_addr
member of the
el_softc
data structure for this device. The
if_el
device driver maps the
ac_enaddr
member of the
arpcom
data
structure to the alternate name
is_addr
.
The argument list that is passed to
printf( )
contains a call to the
ether_sprintf( )
routine. The
ether_sprintf( )
routine converts
an Ethernet address to a printable ASCII string representation.
Make sure that your driver prints a similar message during its
attach( )
routine.
6.6 Specifying the Network Driver Interfaces
The following code shows how the
el_attach( )
routine specifies the
network driver interfaces for the
if_el
driver:
ifp->if_ioctl = el_ioctl;
1
ifp->if_watchdog = el_watch;
2
ifp->if_start = (int (*)())el_start;
3
mb();
ifp->if_output = ether_output;
4
mb();
ifp->if_flags = IFF_BROADCAST|IFF_MULTICAST|
IFF_NOTRAILERS|IFF_SIMPLEX;
5
ifp->if_timer = 0;
6
ifp->if_sysid_type = 0;
7
ifp->if_version = "3Com EtherLink III";
8
1
Sets the
if_ioctl
member of the
ifnet
data structure for this device
to
el_ioctl
, which is the
if_el
device driver’s
ioctl
interface.
2
Sets the
if_watchdog
member of the
ifnet
data structure for this
device to
el_watch
, which is the
if_el
device driver’s
watchdog
interface.
6–6 Implementing the Autoconfiguration Support Section (attach)