Date: Wed, 28 Jul 2004 12:14:45 -0600 From: Scott Long <scottl@samsco.org> To: Brooks Davis <brooks@one-eyed-alien.net> Cc: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> Subject: Re: cvs commit: src/sys/sys _task.h Message-ID: <4107ED15.8000202@samsco.org> In-Reply-To: <20040728180711.GA31842@Odin.AC.HMC.Edu> References: <Pine.NEB.3.96L.1040728125025.26103B-100000@fledge.watson.org> <4107E0F6.8060902@samsco.org> <20040728180711.GA31842@Odin.AC.HMC.Edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Brooks Davis wrote: > 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 >>>><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, as >>>>>>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.) >>> >>> >>>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 with >>>either #define _KERNEL or #if defined(_KERNEL) || _WANT_IFNET. >> >>I'd be quite happy with >> >>#ifndef _KERNEL >>#error "No user-servicable parts inside" >> >>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 > Sounds like a good plan to me. Scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4107ED15.8000202>