diff options
author | Brooks Davis <brooks@FreeBSD.org> | 2005-06-10 16:49:24 +0000 |
---|---|---|
committer | Brooks Davis <brooks@FreeBSD.org> | 2005-06-10 16:49:24 +0000 |
commit | fc74a9f93a5fbc83262aa12084404ac953c854b5 (patch) | |
tree | f65b6d7834b40dfcd48534829a0a1e9529ab87ee /sys/dev/ie/if_ie_isa.c | |
parent | 7f1d8b7517a6a93379974243551e0ec0a96cb54e (diff) | |
download | src-fc74a9f93a5fbc83262aa12084404ac953c854b5.tar.gz src-fc74a9f93a5fbc83262aa12084404ac953c854b5.zip |
Stop embedding struct ifnet at the top of driver softcs. Instead the
struct ifnet or the layer 2 common structure it was embedded in have
been replaced with a struct ifnet pointer to be filled by a call to the
new function, if_alloc(). The layer 2 common structure is also allocated
via if_alloc() based on the interface type. It is hung off the new
struct ifnet member, if_l2com.
This change removes the size of these structures from the kernel ABI and
will allow us to better manage them as interfaces come and go.
Other changes of note:
- Struct arpcom is no longer referenced in normal interface code.
Instead the Ethernet address is accessed via the IFP2ENADDR() macro.
To enforce this ac_enaddr has been renamed to _ac_enaddr.
- The second argument to ether_ifattach is now always the mac address
from driver private storage rather than sometimes being ac_enaddr.
Reviewed by: sobomax, sam
Notes
Notes:
svn path=/head/; revision=147256
Diffstat (limited to 'sys/dev/ie/if_ie_isa.c')
-rw-r--r-- | sys/dev/ie/if_ie_isa.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/dev/ie/if_ie_isa.c b/sys/dev/ie/if_ie_isa.c index 53ed25635d67..564176f17df6 100644 --- a/sys/dev/ie/if_ie_isa.c +++ b/sys/dev/ie/if_ie_isa.c @@ -259,7 +259,7 @@ ie_isa_3C507_attach (device_t dev) goto bad; } - sl_read_ether(sc, sc->arpcom.ac_enaddr); + sl_read_ether(sc, sc->enaddr); /* Clear the interrupt latch just in case. */ outb(PORT(sc) + IE507_ICTRL, 1); @@ -526,14 +526,14 @@ ie_isa_ee16_attach (device_t dev) * the softc for use by the 586 setup code. */ eaddrtemp = ie_ee16_hw_read_eeprom(PORT(sc), IEE16_EEPROM_ENET_HIGH); - sc->arpcom.ac_enaddr[1] = eaddrtemp & 0xFF; - sc->arpcom.ac_enaddr[0] = eaddrtemp >> 8; + sc->enaddr[1] = eaddrtemp & 0xFF; + sc->enaddr[0] = eaddrtemp >> 8; eaddrtemp = ie_ee16_hw_read_eeprom(PORT(sc), IEE16_EEPROM_ENET_MID); - sc->arpcom.ac_enaddr[3] = eaddrtemp & 0xFF; - sc->arpcom.ac_enaddr[2] = eaddrtemp >> 8; + sc->enaddr[3] = eaddrtemp & 0xFF; + sc->enaddr[2] = eaddrtemp >> 8; eaddrtemp = ie_ee16_hw_read_eeprom(PORT(sc), IEE16_EEPROM_ENET_LOW); - sc->arpcom.ac_enaddr[5] = eaddrtemp & 0xFF; - sc->arpcom.ac_enaddr[4] = eaddrtemp >> 8; + sc->enaddr[5] = eaddrtemp & 0xFF; + sc->enaddr[4] = eaddrtemp >> 8; /* disable the board interrupts */ outb(PORT(sc) + IEE16_IRQ, sc->irq_encoded); @@ -757,7 +757,7 @@ ie_isa_sl_attach (device_t dev) case IE_STARLAN10: case IE_SLFIBER: case IE_NI5210: - sl_read_ether(sc, sc->arpcom.ac_enaddr); + sl_read_ether(sc, sc->enaddr); break; default: if (bootverbose) |