Date: Mon, 1 Oct 2001 16:20:19 -0400 From: Jim McGrath <jmcgrath@sitaranetworks.com> To: "'mjacob@feral.com'" <mjacob@feral.com>, freebsd-net@FreeBSD.ORG Subject: RE: review of minor clarifying comments Message-ID: <31269226357BD211979E00A0C9866DAB01BE796A@rios.sitaranetworks.com>
next in thread | raw e-mail | index | archive | help
I ran into this same problem with the wx driver and submitted a pr. http://www.freebsd.org/cgi/query-pr.cgi?pr=29249 Jim -----Original Message----- From: Matthew Jacob [mailto:mjacob@feral.com] Sent: Monday, October 01, 2001 4:05 PM To: freebsd-net@FreeBSD.ORG Subject: review of minor clarifying comments This bit me in the butt yet again about FreeBSD and some assumptions about how a NIC's softc is laid out- I don't really it stated elsewhere, so a couple source file comments seem in order.. Frankly, this kind of assumption is dangerous and unnecessary with methods, but at the very least it ought to be commented, no? -matt Index: net/if_var.h =================================================================== RCS file: /home/ncvs/src/sys/net/if_var.h,v retrieving revision 1.37 diff -u -r1.37 if_var.h --- net/if_var.h 2001/09/18 17:41:42 1.37 +++ net/if_var.h 2001/10/01 20:00:08 @@ -105,6 +105,11 @@ * * (Would like to call this struct ``if'', but C isn't PL/1.) */ + +/* + * 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 ifnet { void *if_softc; /* pointer to driver state */ char *if_name; /* name, e.g. ``en'' or ``lo'' */ Index: dev/mii/mii.c =================================================================== RCS file: /home/ncvs/src/sys/dev/mii/mii.c,v retrieving revision 1.9 diff -u -r1.9 mii.c --- dev/mii/mii.c 2001/09/29 18:40:06 1.9 +++ dev/mii/mii.c 2001/10/01 20:00:09 @@ -167,6 +167,9 @@ struct mii_data *mii; mii = device_get_softc(dev); + /* + * Note that each NIC's softc must start with an ifnet structure. + */ mii->mii_ifp = device_get_softc(device_get_parent(dev)); v = device_get_ivars(dev); ifmedia_upd = v[0]; @@ -233,6 +236,9 @@ MIIBUS_LINKCHG(parent); mii = device_get_softc(dev); + /* + * Note that each NIC's softc must start with an ifnet structure. + */ ifp = device_get_softc(parent); if (mii->mii_media_status & IFM_AVALID) { To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?31269226357BD211979E00A0C9866DAB01BE796A>