Skip site navigation (1)Skip section navigation (2)
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>