aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/limits.h14
-rw-r--r--include/signal.h36
-rw-r--r--lib/libc/gen/sysconf.c4
-rw-r--r--share/man/man9/posix4.967
-rw-r--r--sys/posix4/aio.h10
-rw-r--r--sys/posix4/mqueue.h5
-rw-r--r--sys/posix4/posix4.h18
-rw-r--r--sys/posix4/semaphore.h4
-rw-r--r--sys/sys/_posix.h73
-rw-r--r--sys/sys/aio.h36
-rw-r--r--sys/sys/mman.h12
-rw-r--r--sys/sys/posix4.h18
-rw-r--r--sys/sys/rtprio.h13
-rw-r--r--sys/sys/semaphore.h4
-rw-r--r--sys/sys/unistd.h45
15 files changed, 199 insertions, 160 deletions
diff --git a/include/limits.h b/include/limits.h
index df120e6beb12..383c5cda087f 100644
--- a/include/limits.h
+++ b/include/limits.h
@@ -31,11 +31,12 @@
* SUCH DAMAGE.
*
* @(#)limits.h 8.2 (Berkeley) 1/4/94
- * $Id: limits.h,v 1.5 1997/12/27 22:56:41 steve Exp $
+ * $Id: limits.h,v 1.6 1998/03/04 10:23:24 dufault Exp $
*/
#ifndef _LIMITS_H_
#define _LIMITS_H_
+#include <sys/_posix.h>
#ifndef _ANSI_SOURCE
#define _POSIX_ARG_MAX 4096
@@ -61,14 +62,15 @@
#define _POSIX2_LINE_MAX 2048
#define _POSIX2_RE_DUP_MAX 255
-#ifdef POSIX4_VISIBLE
-#define _POSIX_AIO_LISTIO_MAX 2
+#ifdef _POSIX4_VISIBLE
+
+#define _POSIX_AIO_LISTIO_MAX 16
#define _POSIX_AIO_MAX 1
#define _POSIX_DELAYTIMER_MAX 32
#define _POSIX_MQ_OPEN_MAX 8
#define _POSIX_MQ_PRIO_MAX 32
-#define _POSIX_RTSIG_MAX 8
+#define _POSIX_RTSIG_MAX 0
#define _POSIX_SEM_NSEMS_MAX 256
#define _POSIX_SEM_VALUE_MAX 32767
#define _POSIX_SIGQUEUE_MAX 32
@@ -76,6 +78,10 @@
#endif
+#ifdef _POSIX4_VISIBLE_HISTORICALLY
+#define AIO_LISTIO_MAX 16
+#endif
+
#endif /* !_ANSI_SOURCE */
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) || defined(_XOPEN_SOURCE)
diff --git a/include/signal.h b/include/signal.h
index dd6dc8a934f1..9f38bf576d1e 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -39,6 +39,7 @@
#include <sys/cdefs.h>
#include <sys/signal.h>
#include <machine/ansi.h>
+#include <sys/_posix.h>
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
extern __const char *__const sys_signame[NSIG];
@@ -63,10 +64,39 @@ int signanosleep __P((const struct timespec *, struct timespec *,
int sigpending __P((sigset_t *));
int sigprocmask __P((int, const sigset_t *, sigset_t *));
int sigsuspend __P((const sigset_t *));
-#ifdef POSIX4_VISIBLE
+
+#ifdef _POSIX4_VISIBLE_HISTORICALLY
+
+/* Async event notification */
+
+union sigval {
+ int sival_int;
+ void *sival_ptr;
+};
+struct sigevent {
+ int sigev_notify; /* Notification type */
+ int sigev_signo; /* Signal number */
+ union sigval sigev_value; /* Signal value */
+};
+#define SIGEV_NONE 0 /* No async notification */
+#define SIGEV_SIGNAL 1 /* Queue signal with value */
+
+#endif /* _POSIX4_VISIBLE_HISTORICALLY */
+
+#ifdef _POSIX4_VISIBLE
+
+typedef struct siginfo {
+ int si_signo; /* Signal number */
+ int si_code; /* Cause of the signal */
+ union sigval si_value; /* Signal value */
+} siginfo_t;
+
+__BEGIN_DECLS
int sigqueue __P((_BSD_PID_T_, int, const union sigval));
-int sigtimedwait __P((const sig_set_t *, siginfo_t *));
-int sigwaitinfo __P((const sig_set_t *, siginfo_t *));
+int sigtimedwait __P((const sigset_t *, siginfo_t *));
+int sigwaitinfo __P((const sigset_t *, siginfo_t *));
+__END_DECLS
+
#endif
#ifndef _POSIX_SOURCE
int killpg __P((_BSD_PID_T_, int));
diff --git a/lib/libc/gen/sysconf.c b/lib/libc/gen/sysconf.c
index df67581da2ce..2d9c2eda2bd2 100644
--- a/lib/libc/gen/sysconf.c
+++ b/lib/libc/gen/sysconf.c
@@ -176,7 +176,7 @@ sysconf(name)
mib[1] = USER_POSIX2_UPE;
goto yesno;
-#ifdef POSIX4
+#if _POSIX_VERSION >= 199309L
/* POSIX.4 */
case _SC_ASYNCHRONOUS_IO:
@@ -279,7 +279,7 @@ sysconf(name)
mib[0] = CTL_POSIX4;
mib[1] = CTL_POSIX4_TIMER_MAX;
goto yesno;
-#endif /* POSIX4 */
+#endif /* _POSIX_VERSION >= 199309L */
yesno: if (sysctl(mib, 2, &value, &len, NULL, 0) == -1)
return (-1);
diff --git a/share/man/man9/posix4.9 b/share/man/man9/posix4.9
index e5256b503a0c..ed07afa32142 100644
--- a/share/man/man9/posix4.9
+++ b/share/man/man9/posix4.9
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $Id: posix4.9,v 1.8 1998/01/02 19:22:52 alex Exp $
+.\" $Id: posix4.9,v 1.1 1998/03/04 10:23:50 dufault Exp $
.Dd March 1, 1998
.Dt POSIX.4 9
.Os FreeBSD 3.0
@@ -32,17 +32,21 @@
.Sh DESCRIPTION
POSIX.4 adds real time extensions and some commonly used
Berkeley extensions to POSIX.1
-This section contains information about the the
-POSIX.4 extensions to the system.
+This section contains preliminary information about avoiding conflicts
+and adding support for the required ability to specify the interface
+version.
.Sh STATUS
-March 1, 1998 adds the header file changes to 3.0. There should be no
-visible differences as long as _POSIX_VERSION is left at 199009L and
-no one builds kernels with a POSIX4 option.
+March 7, 1998: adding header file changes to 3.0. There should be no
+visible differences as long as _POSIX_VERSION is left undefined.
+Defining _POSIX_VERSION, even to the current value of 199009L, will
+change the behavior of the system per the POSIX spec: if you define
+_POSIX_VERSION to be 199009L then any extensions
+already added to the system (for example,
+John Dyson's aio work) may no longer be visible - this is happening
+slowly.
.Pp
-If you are working with something defined in POSIX.4 then there is a good
-chance we conflict. If you have the time then set
-_POSIX_VERSION to 199309L in /etc/make.conf and see that your work
-fits with mine.
+In spite of what I said at first, don't set _POSIX_VERSION into the
+future until I say it is working.
.Pp
Since this only brings in the headers I'm only explaining the feature
test options.
@@ -70,37 +74,46 @@ in the name space, i.e., if _POSIX_VERSION is 199309L (POSIX.4) but
_POSIX_C_SOURCE is 199009L (POSIX.1) then only POSIX.1 features should
appear.
.Sh PROPERLY HIDING EXTENSIONS
+The following test macros are set up in <sys/_posix.h>. They should
+used by system header files to avoid the kind of tests you see in
+<sys/_posix.h>. Source programs should not use these FreeBSD specific
+implementation details and should test _POSIX_VERSION.
+These should not be used in the kernel either - the kernel should be
+immune to the user land setting of _POSIX_VERSION. The POSIX4 option can
+be used in the kernel to limit inclusion of new code, but make sure
+things work properly when a POSIX.4 program is run on a kernel without
+the POSIX4 option.
.Bd -literal -offset 0i
-POSIX4_VISIBLE
+_POSIX4_VISIBLE
.Ed
-is a test macro that tries to sort out when extensions should be
-visible.
+is a test macro that sorts out when extensions should be
+visible. It is defined in <sys/_posix.h>.
.Pp
In normal C program development
only _POSIX_VERSION is set, permitting BSD extensions to
appear to the programs. However, when adding new functionality mandated
by POSIX.4, it
is important to satisfy the requirements added by the
-new _POSIX_C_SOURCE macro. POSIX4_VISIBLE (not a standard feature test macro)
+new _POSIX_C_SOURCE macro. _POSIX4_VISIBLE (not a standard feature test macro)
is defined in sys/unistd.h when the combination of _POSIX_VERSION,
-_POSIX_SOURCE, and _POSIX_C_SOURCE indicate the extensions are in scope.
+_POSIX_SOURCE, and _POSIX_C_SOURCE indicate that the extensions are in scope.
+.Bd -literal -offset 0i
+_POSIX4_VISIBLE_HISTORICALLY
+is present to conditionalize POSIX.4 extensions that were historically
+in the system. These are visible when _POSIX_SOURCE and _POSIX_C_SOURCE
+are not set at all or when _POSIX_C_SOURCE enables POSIX.4 features.
.Pp
-Since for POSIX to work you must include <unistd.h> which ultimately
-sets this up header files can always assume this is visible without
-including anything.
+Some of these are new enough that they should be changed to
+be dependent on _POSIX4_VISIBLE instead.
.Pp
-Some traditional BSD headers (e.g., mmap.h) are now specified in POSIX.4.
-This means that functionality not present in POSIX.4 should now be
-hidden by testing _POSIX_SOURCE or _POSIX_C_SOURCE. The safest thing
-is to hide them when _POSIX_C_SOURCE is defined and less than 199309L.
-Don't bracket the extensions with the POSIX.4 feature test macros.
-For example, don't conditionalize new memory locking flags with
-_POSIX_MEMLOCK. It will be too easy for conflicting implementations
-that don't pay heed to the POSIX.4 flags to sneak into the system.
+Traditional BSD headers (e.g., mmap.h) that are now specified
+in POSIX.4 should include <sys/_posix.h> and conditionalize
+BSD extensions on _POSIX4_VISIBLE_HISTORICALLY.
.Sh NON STANDARD TEST MACROS
.Bd -literal -offset 0i
-POSIX4_INCLUDE_MAYBES
+_POSIX4_INCLUDE_MAYBES
.Ed
+when set before the inclusion of any other header file
requests that all header files that the POSIX.4 spec says a standard
header may include should be included. Normally no non-required
headers are included. Setting this pre-processor definition should
diff --git a/sys/posix4/aio.h b/sys/posix4/aio.h
index 6cd47bc70e9e..678dc0f4e340 100644
--- a/sys/posix4/aio.h
+++ b/sys/posix4/aio.h
@@ -31,15 +31,15 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id:$
+ * $Id: aio.h,v 1.1 1998/03/04 10:26:10 dufault Exp $
*/
/* aio.h: P1003.1B-1993 Asynchronous I/O */
-#ifndef _POSIX4_AIO_H_
-#define _POSIX4_AIO_H_
+#ifndef _AIO_H_
+#define _AIO_H_
-#ifdef POSIX4_INCLUDE_MAYBES
+#ifdef _POSIX4_INCLUDE_MAYBES
#include <sys/types.h>
#include <signal.h>
#include <time.h>
@@ -87,6 +87,7 @@ struct aiocb {
#ifndef KERNEL
#include <sys/cdefs.h>
+__BEGIN_DECLS
int aio_read __P((struct aiocb *));
int aio_write __P((struct aiocb *));
@@ -101,6 +102,7 @@ int aio_suspend __P((caio_listio_ctl [_POSIX_AIO_LISTIO_MAX],
int, const struct timespec *));
int aio_fsync __P((int, struct aiocb *));
+__END_DECLS
#endif /* KERNEL */
diff --git a/sys/posix4/mqueue.h b/sys/posix4/mqueue.h
index 0872ddf6266d..6fcf4409ed33 100644
--- a/sys/posix4/mqueue.h
+++ b/sys/posix4/mqueue.h
@@ -36,7 +36,7 @@
*
*/
-#ifdef POSIX4_INCLUDE_MAYBES
+#ifdef _POSIX4_INCLUDE_MAYBES
#include <sys/types.h>
#include <fcntl.h>
#include <time.h>
@@ -55,8 +55,10 @@ struct mq_attr {
};
#ifndef KERNEL
+
#include <sys/cdefs.h>
+__BEGIN_DECLS
mqd_t mq_open __P((const char *, int oflag, ...));
int mq_close __P((mqd_t));
int mq_unlink __P((const char *));
@@ -65,6 +67,7 @@ ssize_t mq_receive __P((mqd_t, char *, size_t, unsigned int *));
int mq_notify __P((mqd_t, const struct sigevent *));
int mq_setattr __P((mqd_t, const struct mq_attr *, struct mq_attr *));
int mq_getattr __P((mqd_t, struct mq_attr *));
+__END_DECLS
#endif /* KERNEL */
diff --git a/sys/posix4/posix4.h b/sys/posix4/posix4.h
index 5037b03bbd7e..99ba8822a2b0 100644
--- a/sys/posix4/posix4.h
+++ b/sys/posix4/posix4.h
@@ -33,22 +33,14 @@
*
*/
-#if defined(_POSIX_VERSION) && _POSIX_VERSION >= 199309L
+#include <sys/_posix.h>
+
+#ifdef _POSIX4_VISIBLE
+
#include <sys/param.h>
#include <sys/ioccom.h>
#include <sched.h>
-/*
- * This defines POSIX4_VISIBLE to indicate posix4 extensions should show up.
- * You should test this when you add a posix4 extension to a header
- * that exists in POSIX.1. Try "man 9 posix4".
- */
-
-#if !defined(_POSIX_C_SOURCE) || \
- defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L
-#define POSIX4_VISIBLE
-#endif
-
/*
*
* March 1, 1998: Details from here on change and this header file
@@ -296,5 +288,5 @@ int kmunlock(int *, void *, const void *, size_t );
{ "timer_max", CTLTYPE_INT }, \
}
-#endif /* _POSIX_VERSION >= 199309L */
+#endif /* _POSIX4_VISIBLE */
#endif /* _POSIX4_POSIX4_H_ */
diff --git a/sys/posix4/semaphore.h b/sys/posix4/semaphore.h
index fbcab1312593..a24ac35180e5 100644
--- a/sys/posix4/semaphore.h
+++ b/sys/posix4/semaphore.h
@@ -36,7 +36,7 @@
*
*/
-#ifdef POSIX4_INCLUDE_MAYBES
+#ifdef _POSIX4_INCLUDE_MAYBES
#include <sys/types.h>
#include <fcntl.h>
#endif
@@ -46,6 +46,7 @@ typedef int sem_t;
#ifndef KERNEL
#include <sys/cdefs.h>
+__BEGIN_DECLS
int sem_init __P(sem_t *, int, unsigned int));
int sem_destroy __P((sem_t *));
sem_t sem_open __P((const char *, int, ...));
@@ -55,6 +56,7 @@ int sem_wait((sem_t *));
int sem_trywait((sem_t *));
int sem_post((sem_t *));
int sem_getvalue((sem_t *, int *));
+__END_DECLS
#endif /* KERNEL */
diff --git a/sys/sys/_posix.h b/sys/sys/_posix.h
new file mode 100644
index 000000000000..daf4fe2814e2
--- /dev/null
+++ b/sys/sys/_posix.h
@@ -0,0 +1,73 @@
+#ifndef _SYS__POSIX_H_
+#define _SYS__POSIX_H_
+
+/*-
+ * Copyright (c) 1998 HD Associates, Inc.
+ * All rights reserved.
+ * contact: dufault@hda.com
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $Id: $
+ */
+
+/*
+ * This is a stand alone header file to set up for feature specification
+ * defined to take place before the inclusion of any standard header.
+ * It should only handle pre-processor defines.
+ *
+ * See section B.2.7 of 1003.1b-1993
+ *
+ */
+
+#ifndef _POSIX_VERSION
+#define _POSIX_VERSION 199009L
+#endif
+
+/* Test for visibility of pre-existing POSIX.4 features that should really
+ * be conditional. If _POSIX_C_SOURCE and _POSIX_SOURCE are not
+ * defined then permit the pre-existing features to show up:
+ */
+#if !defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
+#define _POSIX4_VISIBLE_HISTORICALLY
+#endif
+
+/* Test for visibility of additional POSIX.4 features:
+ */
+#if _POSIX_VERSION >= 199309L && \
+ (!defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE >= 199309L)
+#define _POSIX4_VISIBLE
+#define _POSIX4_VISIBLE_HISTORICALLY
+#endif
+
+/* I'm not sure if I'm allowed to do this, but at least initially
+ * it may catch some teething problems:
+ */
+
+#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE > _POSIX_VERSION)
+#error _POSIX_C_SOURCE > _POSIX_VERSION
+#endif
+
+#define POSIX4_VISIBLE You missed the leading _!!
+#define POSIX4_VISIBLE_FORCEABLY You left the old define in the code!!
+
+#endif /* _SYS__POSIX_H_ */
diff --git a/sys/sys/aio.h b/sys/sys/aio.h
index 4b1604b404a5..09627da41789 100644
--- a/sys/sys/aio.h
+++ b/sys/sys/aio.h
@@ -16,40 +16,11 @@
* bad that happens because of using this software isn't the responsibility
* of the author. This software is distributed AS-IS.
*
- * $Id: aio.h,v 1.2 1997/07/17 04:49:43 dyson Exp $
+ * $Id: aio.h,v 1.3 1997/12/08 02:18:14 dyson Exp $
*/
#include <sys/types.h>
-/**************************************************************************/
-/* Additions to signal.h -- hack alert. */
-/**************************************************************************/
-/*
- * sigval structure:
- */
-union sigval {
- int sival_int;
- void *sival_ptr;
-};
-
-/*
- * this is the sigevent structure:
- */
-struct sigevent {
- int sigev_notify; /* Notification */
- int sigev_signo; /* Signal number */
- union sigval sigev_value; /* Not used yet in FreeBSD */
-};
-
-/*
- * values for sigev_notify:
- */
-#define SIGEV_NONE 0 /* Don't post a signal */
-#define SIGEV_SIGNAL 1 /* Post specified signal */
-
-/**************************************************************************/
-/* Actual AIO header */
-/**************************************************************************/
/*
* Returned by aio_cancel:
* (Note that FreeBSD's aio is not cancellable -- yet.)
@@ -72,11 +43,6 @@ struct sigevent {
#define LIO_WAIT 0x1
/*
- * Maximum number of allowed LIO operations
- */
-#define AIO_LISTIO_MAX 16
-
-/*
* Private mode bit for aio.
* (This bit is set by the library routine
* to allow the kernel to support sync
diff --git a/sys/sys/mman.h b/sys/sys/mman.h
index f0b609f3ea71..764ef357b96b 100644
--- a/sys/sys/mman.h
+++ b/sys/sys/mman.h
@@ -31,12 +31,14 @@
* SUCH DAMAGE.
*
* @(#)mman.h 8.2 (Berkeley) 1/9/95
- * $Id: mman.h,v 1.20 1997/12/31 01:22:00 alex Exp $
+ * $Id: mman.h,v 1.21 1998/03/04 10:26:35 dufault Exp $
*/
#ifndef _SYS_MMAN_H_
#define _SYS_MMAN_H_
+#include <sys/_posix.h>
+
/*
* Protections are chosen from these bits, or-ed together
*/
@@ -63,14 +65,14 @@
#define MAP_NOEXTEND 0x0100 /* for MAP_FILE, don't change file size */
#define MAP_HASSEMAPHORE 0x0200 /* region may contain semaphores */
-#ifdef POSIX4_VISIBLE
+#ifdef _POSIX4_VISIBLE
/*
* Process memory locking
*/
#define MCL_CURRENT 0x0001 /* Lock only current memory */
#define MCL_FUTURE 0x0002 /* Lock all future memory as well */
-#endif /* POSIX4_VISIBLE */
+#endif /* _POSIX4_VISIBLE */
/*
* Error return from mmap()
@@ -115,12 +117,12 @@
#include <sys/cdefs.h>
__BEGIN_DECLS
-#ifdef POSIX4_VISIBLE
+#ifdef _POSIX4_VISIBLE
int mlockall __P((int));
int munlockall __P((void));
int shm_open __P((const char *, int, mode_t));
int shm_unlink __P((const char *));
-#endif /* POSIX4_VISIBLE */
+#endif /* _POSIX4_VISIBLE */
int mlock __P((const void *, size_t));
#ifndef _MMAP_DECLARED
#define _MMAP_DECLARED
diff --git a/sys/sys/posix4.h b/sys/sys/posix4.h
index 5037b03bbd7e..99ba8822a2b0 100644
--- a/sys/sys/posix4.h
+++ b/sys/sys/posix4.h
@@ -33,22 +33,14 @@
*
*/
-#if defined(_POSIX_VERSION) && _POSIX_VERSION >= 199309L
+#include <sys/_posix.h>
+
+#ifdef _POSIX4_VISIBLE
+
#include <sys/param.h>
#include <sys/ioccom.h>
#include <sched.h>
-/*
- * This defines POSIX4_VISIBLE to indicate posix4 extensions should show up.
- * You should test this when you add a posix4 extension to a header
- * that exists in POSIX.1. Try "man 9 posix4".
- */
-
-#if !defined(_POSIX_C_SOURCE) || \
- defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L
-#define POSIX4_VISIBLE
-#endif
-
/*
*
* March 1, 1998: Details from here on change and this header file
@@ -296,5 +288,5 @@ int kmunlock(int *, void *, const void *, size_t );
{ "timer_max", CTLTYPE_INT }, \
}
-#endif /* _POSIX_VERSION >= 199309L */
+#endif /* _POSIX4_VISIBLE */
#endif /* _POSIX4_POSIX4_H_ */
diff --git a/sys/sys/rtprio.h b/sys/sys/rtprio.h
index 5b6830def121..c4a031ce999b 100644
--- a/sys/sys/rtprio.h
+++ b/sys/sys/rtprio.h
@@ -28,7 +28,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: rtprio.h,v 1.4 1997/02/22 09:45:48 peter Exp $
+ * $Id: rtprio.h,v 1.5 1998/03/04 10:26:39 dufault Exp $
*/
#ifndef _SYS_RTPRIO_H_
@@ -44,23 +44,14 @@
#define RTP_PRIO_NORMAL 1
#define RTP_PRIO_IDLE 2
-/* RTP_PRIO_FIFO is Posix 4 SCHED_FIFO.
- * Careful: These are based on the kernel config POSIX4 and not
- * the compile time test _POSIX_PRIORITY_SCHEDULING since they
- * set the behavior of the system.
+/* RTP_PRIO_FIFO is POSIX.4 SCHED_FIFO.
*/
-#ifdef POSIX4
#define RTP_PRIO_FIFO_BIT 4
#define RTP_PRIO_FIFO (RTP_PRIO_REALTIME | RTP_PRIO_FIFO_BIT)
#define RTP_PRIO_BASE(P) ((P) & ~RTP_PRIO_FIFO_BIT)
#define RTP_PRIO_IS_REALTIME(P) (RTP_PRIO_BASE(P) == RTP_PRIO_REALTIME)
#define RTP_PRIO_NEED_RR(P) ((P) != RTP_PRIO_FIFO)
-#else
-#define RTP_PRIO_BASE(P) (P)
-#define RTP_PRIO_IS_REALTIME(P) (P == RTP_PRIO_REALTIME)
-#define RTP_PRIO_NEED_RR(P) (1)
-#endif
/* priority range */
#define RTP_PRIO_MIN 0 /* Highest priority */
diff --git a/sys/sys/semaphore.h b/sys/sys/semaphore.h
index fbcab1312593..a24ac35180e5 100644
--- a/sys/sys/semaphore.h
+++ b/sys/sys/semaphore.h
@@ -36,7 +36,7 @@
*
*/
-#ifdef POSIX4_INCLUDE_MAYBES
+#ifdef _POSIX4_INCLUDE_MAYBES
#include <sys/types.h>
#include <fcntl.h>
#endif
@@ -46,6 +46,7 @@ typedef int sem_t;
#ifndef KERNEL
#include <sys/cdefs.h>
+__BEGIN_DECLS
int sem_init __P(sem_t *, int, unsigned int));
int sem_destroy __P((sem_t *));
sem_t sem_open __P((const char *, int, ...));
@@ -55,6 +56,7 @@ int sem_wait((sem_t *));
int sem_trywait((sem_t *));
int sem_post((sem_t *));
int sem_getvalue((sem_t *, int *));
+__END_DECLS
#endif /* KERNEL */
diff --git a/sys/sys/unistd.h b/sys/sys/unistd.h
index e31a7d3d7384..9ac2c03c4ae4 100644
--- a/sys/sys/unistd.h
+++ b/sys/sys/unistd.h
@@ -31,12 +31,14 @@
* SUCH DAMAGE.
*
* @(#)unistd.h 8.2 (Berkeley) 1/7/94
- * $Id: unistd.h,v 1.14 1997/06/16 00:29:26 dyson Exp $
+ * $Id: unistd.h,v 1.15 1998/03/04 10:26:46 dufault Exp $
*/
#ifndef _SYS_UNISTD_H_
#define _SYS_UNISTD_H_
+#include <sys/_posix.h>
+
/* compile-time symbolic constants */
#define _POSIX_JOB_CONTROL /* implementation supports job control */
@@ -50,47 +52,10 @@
#define _POSIX_SAVED_IDS /* saved set-user-ID and set-group-ID */
#endif
-#ifdef POSIX4
-
-/* Select POSIX.4 regardless.
- * Don't undef first - we want an error on conflicts.
- */
-
-#define _POSIX_VERSION 199309L
-#endif
-
-#ifndef _POSIX_VERSION
-#define _POSIX_VERSION 199009L
-#endif
-
-#if _POSIX_VERSION > 199009L
-/*
- * Set it up so that all new headers can assume _POSIX_C_SOURCE is the
- * only thing that must be looked at to determine the feature set,
- * and so that old headers don't have to change:
- */
-#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
-/*
- * Default to latest:
- */
-#define _POSIX_C_SOURCE _POSIX_VERSION
-#endif
-
-#if defined(_POSIX_C_SOURCE) && !defined(_POSIX_SOURCE)
-/*
- * Define _POSIX_SOURCE for older headers:
- */
-#define _POSIX_SOURCE
-#endif
-
#if _POSIX_VERSION >= 199309L
#include <posix4/posix4.h>
#endif
-#endif /* _POSIX_VERSION */
-
-
-
#define _POSIX2_VERSION 199212L
/* execution-time symbolic constants */
@@ -162,7 +127,7 @@
/* configurable system strings */
#define _CS_PATH 1
-#ifdef POSIX4_VISIBLE
+#ifdef _POSIX4_VISIBLE
#if 0
/* Not until the dust settles after the header commit
@@ -205,7 +170,7 @@
#define _PC_PRIO_IO 54
#define _PC_SYNC_IO 55
-#endif /* POSIX4_VISIBLE */
+#endif /* _POSIX4_VISIBLE */
#ifndef _POSIX_SOURCE
/*