From owner-cvs-all Sun Mar 8 13:45:03 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id NAA16191 for cvs-all-outgoing; Sun, 8 Mar 1998 13:45:03 -0800 (PST) (envelope-from owner-cvs-all@FreeBSD.ORG) Received: from hda.hda.com (hda-bicnet.bicnet.net [208.220.66.37]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id NAA16182 for ; Sun, 8 Mar 1998 13:45:00 -0800 (PST) (envelope-from dufault@hda.hda.com) Received: (from dufault@localhost) by hda.hda.com (8.8.5/8.8.5) id QAA16102; Sun, 8 Mar 1998 16:44:41 -0500 (EST) From: Peter Dufault Message-Id: <199803082144.QAA16102@hda.hda.com> Subject: Re: cvs commit: src/include sched.h Makefile In-Reply-To: <199803082019.HAA13547@cimlogic.com.au> from John Birrell at "Mar 9, 98 07:19:20 am" To: jb@cimlogic.com.au (John Birrell) Date: Sun, 8 Mar 1998 16:44:40 -0500 (EST) Cc: cvs-committers@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL25 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk > That's probably regarded as the "traditional" BSD way, so you're just > being consistent. If I had my way, though, I'd design such things to make > the underlying (kernel in this case) implementation opaque to the user > so that changes in that don't cause recompiles of user programs. An > example of what I'd prefer to avoid is the visibility that user-space > has to struct proc. I like to use the concept of public and private > headers. But it is "lonely" working on BSD having that opinion. 8-( Don't feel lonely - the kernel implementation can remain opaque. Sharing the header is intended to allow standard C sharing (avoiding details about structure setup etc.) of some as of yet unused piece of the structure between the kernel and the user space, for eample, to avoid lookup style operations in the kernel with a cookie. The user space can't do much with an opaque kernel cookie but it may help the kernel. The intent of ifdef KERNEL is to hide ISO standardized POSIX function interfaces from the kernel to avoid conflicts - protection against a stupid thing that you haven't accused me of but which is my critique of putting it there. My kernel interfaces are kept in posix4/posix4.h. I'm happy to agree that the kernel shouldn't have such interfaces, or that when present they must be consistent with the spec. I'll rip out ifdef KERNEL. About posix4 - we all agree it is a dumb name. Let's leave it and the associated implementation macros that way for a while and agree we'll change it later - I'll finish up setting it up so you can set _POSIX_VERSION to 199309L and lkm in the pieces I have while I order the latest spec and look it over. Anyone else who has to work with that right now won't care either. Then we can move that subdirectory to a more sensible place. Peter -- Peter Dufault (dufault@hda.com) Realtime development, Machine control, HD Associates, Inc. Safety critical systems, Agency approval To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message