cvs commit: src/sys/net if.c if_vlan.c

Ruslan Ermilov ru at FreeBSD.org
Sat Apr 24 15:51:50 PDT 2004


On Sat, Apr 24, 2004 at 03:24:48PM -0700, Luigi Rizzo wrote:
> luigi       2004/04/24 15:24:48 PDT
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/net              if.c if_vlan.c 
>   Log:
>   arpcom untangling:
>   
>   consistently with the rest of the code, use IFP2AC(ifp) to access
>   the arpcom structure given the ifp.
>   
>   In this case also fix a difference in assumptions WRT the rest of
>   the net/ sources: it is not the 'struct *softc' that starts with a
>   'struct arpcom', but a 'struct arpcom' that starts with a
>   'struct ifnet'
>   
Hmm, actually both statements are true.  From if_var.h:

/*
 * NB: For FreeBSD, it is assumed that each NIC driver's softc starts with
 * one of these structures, typically held within an arpcom structure.
 *
 *      struct <foo>_softc {
 *              struct arpcom {
 *                      struct  ifnet ac_if;
 *                      ...
 *              } <arpcom> ;
 *              ...
 *      };
 *
 * The assumption is used in a number of places, including many
 * files in sys/net, device drivers, and sys/dev/mii.c:miibus_attach().
 *
 * Unfortunately devices' softc are opaque, so we depend on this layout
 * to locate the struct ifnet from the softc in the generic code.
 *
 */

But I think your intention is to only leave the latter; in this
case, please care to update this comment in if_var.h.  It came
very handy when I fixed the problem in sys/netgraph/ng_eiface.c,
rev. 1.11, and I'll sure look here again next time I do something
similar.


Cheers,
-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-src/attachments/20040425/8b8868cb/attachment.bin


More information about the cvs-src mailing list