Date: Wed, 28 Jul 2004 11:07:11 -0700 From: Brooks Davis <brooks@one-eyed-alien.net> To: Scott Long <scottl@samsco.org> Cc: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> Subject: Re: cvs commit: src/sys/sys _task.h Message-ID: <20040728180711.GA31842@Odin.AC.HMC.Edu> In-Reply-To: <4107E0F6.8060902@samsco.org> References: <Pine.NEB.3.96L.1040728125025.26103B-100000@fledge.watson.org> <4107E0F6.8060902@samsco.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--RnlQjJ0d97Da+TV1 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jul 28, 2004 at 11:23:02AM -0600, Scott Long wrote: > Robert Watson wrote: > >On Wed, 28 Jul 2004, Garrett Wollman wrote: > > > > > >><<On Wed, 28 Jul 2004 08:03:16 -0700, Alfred Perlstein=20 > >><alfred@FreeBSD.ORG> said: > >> > >> > >>>* Maxime Henrion <mux@freebsd.org> [040728 02:19] wrote: > >>> > >>>>Or have a struct ifnet for kernel and a struct xifnet for userland, a= s=20 > >>>>we > >>>>do in other places. > >> > >>>That sounds more correct (xifnet). > >> > >>No. Everything that would legitimately be available in an xifnet > >>structure is already made available through other interfaces. The only > >>reason programs might need to look at a struct ifnet is because they're > >>mucking about in kernel memory, in which case they need the real one and > >>not a "sanitized" version. (This is why I moved struct ifnet to > >><net/if_var.h> in the first place.)=20 > > > > > >Some applications and libraries declare their known violation of layering > >boundaries in the system by #define _KERNEL. Others structures have > >special #define's, such as COMPAT_43, _WANT_UCRED, etc. I'd be happy wi= th > >either #define _KERNEL or #if defined(_KERNEL) || _WANT_IFNET. >=20 > I'd be quite happy with >=20 > #ifndef _KERNEL > #error "No user-servicable parts inside" >=20 > or similar as is in /sys/sys/timetc.h. Either way, pollution bad, > fluffy bunnies good. First we need to get our house in order. I count at least 52 includes of net/if_var.h in our userland. We could go ahead and add: #if defined(BURN_BRIDGES) && !defined(_KERNEL) #error "No user-servicable parts inside" #endif That would break all the offenders when we branch without forcing us to deal with yet another thing before 5.3. -- Brooks --=20 Any statement of the form "X is the one, true Y" is FALSE. PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4 --RnlQjJ0d97Da+TV1 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQFBB+tFXY6L6fI4GtQRAs6DAKDQFAhp3FNi42sWkIArpLKwp+e9SgCfU9fA 00YJxb1rZc3KJg1Ja6tPtq8= =BWd1 -----END PGP SIGNATURE----- --RnlQjJ0d97Da+TV1--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040728180711.GA31842>