aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2021-10-22 15:17:21 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-11-10 19:18:53 +0000
commit160b4b922b6021848b6b48afc894d16b879b7af2 (patch)
tree690bdb64b4b282df69d5d20c97e415f7564c6f3e /include
parente5adb145f06e744e0205358d9a2657442dd623b1 (diff)
downloadsrc-160b4b922b6021848b6b48afc894d16b879b7af2.tar.gz
src-160b4b922b6021848b6b48afc894d16b879b7af2.zip
Add real sched.h
It is required by IEEE Std 1003.1-2008 AKA POSIX. Put some Linux compatibility stuff under BSD_VISIBLE namespace, in particular, sys/cpuset.h definitions. Also, if user really want Linux compatibility, she can request cpu_set_t typedef with _WITH_CPU_SET_T define. Reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D32901
Diffstat (limited to 'include')
-rw-r--r--include/Makefile5
-rw-r--r--include/sched.h46
2 files changed, 49 insertions, 2 deletions
diff --git a/include/Makefile b/include/Makefile
index f5c0fc598b0c..1d6557cdad1e 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -20,7 +20,8 @@ INCS= a.out.h ar.h assert.h bitstring.h complex.h cpio.h _ctype.h ctype.h \
netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \
printf.h proc_service.h pthread.h \
pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h \
- res_update.h resolv.h runetype.h search.h semaphore.h setjmp.h \
+ res_update.h resolv.h runetype.h sched.h \
+ search.h semaphore.h setjmp.h \
signal.h spawn.h stab.h stdalign.h stdbool.h stddef.h \
stdnoreturn.h stdio.h stdlib.h string.h stringlist.h \
strings.h sysexits.h tar.h termios.h tgmath.h \
@@ -33,7 +34,7 @@ INCS+= vis.h
MHDRS= float.h floatingpoint.h stdarg.h
-PHDRS= sched.h _semaphore.h
+PHDRS= _semaphore.h
LHDRS= aio.h errno.h fcntl.h linker_set.h poll.h stdatomic.h stdint.h \
syslog.h ucontext.h
diff --git a/include/sched.h b/include/sched.h
new file mode 100644
index 000000000000..1a8eac18109c
--- /dev/null
+++ b/include/sched.h
@@ -0,0 +1,46 @@
+/*-
+ * Copyright (c) 2021 The FreeBSD Foundation
+ *
+ * This software were developed by Konstantin Belousov <kib@FreeBSD.org>
+ * under sponsorship from the FreeBSD Foundation.
+ *
+ * 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.
+ */
+
+#ifndef __SCHED_H__
+#define __SCHED_H__
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+#include <sys/sched.h>
+#if __BSD_VISIBLE
+#include <sys/cpuset.h>
+#endif /* __BSD_VISIBLE */
+
+#if __BSD_VISIBLE
+#ifdef _WITH_CPU_SET_T
+struct _cpuset;
+typedef struct _cpuset cpu_set_t;
+#endif /* _WITH_CPU_SET_T */
+#endif /* __BSD_VISIBLE */
+
+#endif /* __SCHED_H__ */