cvs commit: src/sys/sys _task.h

Brooks Davis brooks at one-eyed-alien.net
Wed Jul 28 09:09:13 PDT 2004


On Wed, Jul 28, 2004 at 11:19:20AM +0200, Maxime Henrion wrote:
> Maxime Henrion wrote:
> > mux         2004-07-28 09:12:54 UTC
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     sys/sys              _task.h 
> >   Log:
> >   Remove (at least temporarily) the check that prevents us from including
> >   this file from userland.  Since we export struct ifnet to userland, and
> >   that struct ifnet now contains a struct task, userland needs to know
> >   what struct task looks like.
> >   
> >   We need to consider having a pointer to a struct task here instead and
> >   forward declare struct task in the !_KERNEL case.
> 
> Or have a struct ifnet for kernel and a struct xifnet for userland, as we
> do in other places.

No, that won't work.  There is no valid reason for userland applications
to use struct ifnet.  They only use it because the authors were lazy
and access things like interface stats via kvm access to ifnet instead
of via the generally adaquate sysctls.  I'm seriously tempted to wrap
if_var.h in something like, at least once we get our useland clean:

#if defined(_KERNEL) || defined(IF_VAR_H_IS_NOT_A_VALID_USERLAND_INTERFACE)

-- Brooks

-- 
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-all/attachments/20040728/eb9f3040/attachment.bin


More information about the cvs-all mailing list