svn commit: r194538 - head/sys/sys

David Schultz das at FreeBSD.ORG
Tue Jun 23 23:39:23 UTC 2009


On Wed, Jun 24, 2009, Kostik Belousov wrote:
> On Tue, Jun 23, 2009 at 06:12:48PM -0400, David Schultz wrote:
> > On Sat, Jun 20, 2009, Kostik Belousov wrote:
> > > On Sat, Jun 20, 2009 at 04:39:25PM +0000, Ed Schouten wrote:
> > > > Author: ed
> > > > Date: Sat Jun 20 16:39:25 2009
> > > > New Revision: 194538
> > > > URL: http://svn.freebsd.org/changeset/base/194538
> > > > 
> > > > Log:
> > > >   Add placeholder to prevent reuse of privilege 254.
> > > >   
> > > >   Requested by:	rwatson
> > > > 
> > > > Modified:
> > > >   head/sys/sys/priv.h
> > > > 
> > > > Modified: head/sys/sys/priv.h
> > > > ==============================================================================
> > > > --- head/sys/sys/priv.h	Sat Jun 20 16:37:24 2009	(r194537)
> > > > +++ head/sys/sys/priv.h	Sat Jun 20 16:39:25 2009	(r194538)
> > > > @@ -211,6 +211,7 @@
> > > >  #define	PRIV_TTY_DRAINWAIT	251	/* Set tty drain wait time. */
> > > >  #define	PRIV_TTY_DTRWAIT	252	/* Set DTR wait on tty. */
> > > >  #define	PRIV_TTY_EXCLUSIVE	253	/* Override tty exclusive flag. */
> > > > +#define	_PRIV_TTY_PRISON	254	/* Removed. */
> > > >  #define	PRIV_TTY_STI		255	/* Simulate input on another tty. */
> > > >  #define	PRIV_TTY_SETA		256	/* Set tty termios structure. */
> > > >  
> > > Names starting with two underscores or underscore and upper-case letter
> > > are reserved to the C language implementation. We should not use it
> > > in the code.
> > 
> > Applications are not supposed to use such symbols, but we use them
> > pervasively in system headers specifically to avoid conflicting
> > with symbols an application might define.  (Effectively, we
> > consider system headers to be part of the language implementation.)
> 
> My interpretation is that we use freestanding environment for the kernel,
> and appropriate requirements shall be fullfilled by kernel code.

If that's the case, then how do you propose we cope with the
boilerplate preface to virtually every header file, i.e., like the
following?

	#ifndef _SYS_PRIV_H_
	#define _SYS_PRIV_H_

The intent of the restrictions on names with underscores is to
provide a namespace for implementors of libraries and header files
that will not conflict with conforming applications.  (In this
context, I guess it makes more sense to talk about third-party
modules instead of applications.)  Of course the compiler may also
define symbols in this namespace, but that's a much more
manageable problem, notwithstanding the fact that compiler authors
are generally careful to use more specific prefixes such as
`__STDC' and `__GNUC'.


More information about the svn-src-head mailing list