#define is_ac
is_ed->ess_ac
2
#define ztime
is_ed->ess_ztime
3
#define ctrblk
is_ed->ess_ctrblk
4
#define is_if
is_ac.ac_if
5
#define is_addr is_ac.ac_enaddr
6
1
Declares an instance of the
ether_driver
data structure and calls
it
is_ed
. All network drivers must have an
ether_driver
data
structure. By convention, a pointer to this data structure is the first
element in the
softc
data structure.
2
Maps the
ess_ac
member of the
ether_driver
data structure to
the alternate name
is_ac
. The
ess_ac
member is referred to as the
“Ethernet common part” and is actually an instance of the
arpcom
data
structure. Figure 3–2 shows the
is_ac
alternate name and associated
mapping.
3
Maps the
ess_ztime
member of the
ether_driver
data structure to
the alternate name
ztime
. The
ess_ztime
member stores the time
counters that were last zeroed. Figure 3–2 shows the
ztime
alternate
name and associated mapping.
4
Maps the
ess_ctrblk
member of the
ether_driver
data structure
to the alternate name
ctrblk
. The
ess_ctrblk
member is referred
to as the “counter block” and is actually an instance of the
estat
data
structure. Figure 3–2 shows the
ctrblk
alternate name and associated
mapping.
You must define this line in your network device driver if you plan to
use
ADD_RECV_MPACKET
,
ADD_RECV_PACKET
,
ADD_XMIT_MPACKET
,
and
ADD_XMIT_PACKET
for maintaining LAN device counters. Each of
these macros references the
ctrblk
alternate name.
5
Maps the
ac_if
member of the
arpcom
data structure to the alternate
name
is_if
. The
ac_if
member is referred to as the “network-visible
interface” and is actually an instance of the
ifnet
data structure.
Figure 3–2 shows the
is_if
alternate name and associated mapping.
6
Maps the
ac_enaddr
member of the
arpcom
data structure to the
alternate name
is_addr
. The name
ac_enaddr
is actually an alternate
name for
ac_hwaddr
, which is the name of the actual member of
the
arpcom
data structure that stores the hardware address. The
if_ether.h
file defines the
ac_enaddr
alternate name. Figure 3–2
shows the
is_addr
alternate name and associated mapping.
Defining the softc Data Structure 3–3