Subject: Re: struct ifnet's if_softc field?
To: Dave McConnell <davem@eastcoast.co.za>
From: Matt Thomas <matt@3am-software.com>
List: tech-kern
Date: 05/14/1999 07:59:31
At 03:29 AM 5/14/99 , Dave McConnell wrote:
>Why does "struct ifnet" have a "void *if_softc" as its first field. It
>seems unnecessary...
>
>Isn't ifnet always the first field in a network drivers softc structure?
No. For physical interfaces, struct device is first.
>In which case the pointer to the drivers "struct softc" is also the
>address of the devices "struct ifnet" (analogous to inheritence in
>C++) or am I missing something here ?
But that usually isn't the case.
>Along the same lines, I also see explicit useage of the softc's ifnet
>field address rather than the address of the softc structure itself
>when an ifnet address is required.
This so we can use C's limited typechecking to hopefully prevent bugs.
Note that if/when we switch to dynamic ifnet structures (for pcmcia
and/or usb), compilation warnings will occur where code has not been
updated.
--
Matt Thomas Internet: matt@3am-software.com
3am Software Foundry WWW URL: http://www.3am-software.com/bio/matt/
Sunnyvale, CA Disclaimer: I avow all knowledge of this message