cvs commit: src/sys/sys _task.h

Scott Long scottl at samsco.org
Wed Jul 28 11:16:49 PDT 2004


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 at FreeBSD.ORG> said:
>>>>
>>>>
>>>>
>>>>>* Maxime Henrion <mux at 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


More information about the cvs-src mailing list