git: 160b4b922b60 - main - Add real sched.h

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Wed, 10 Nov 2021 19:34:19 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=160b4b922b6021848b6b48afc894d16b879b7af2

commit 160b4b922b6021848b6b48afc894d16b879b7af2
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2021-10-22 15:17:21 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2021-11-10 19:18:53 +0000

    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
---
 include/Makefile |  5 +++--
 include/sched.h  | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 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__ */