summaryrefslogtreecommitdiffstats
path: root/sys/sys
diff options
context:
space:
mode:
authortrhodes <trhodes@FreeBSD.org>2006-11-11 16:27:52 +0000
committertrhodes <trhodes@FreeBSD.org>2006-11-11 16:27:52 +0000
commit9023317312d7a126f09895797d7d7e1e9ccb1344 (patch)
tree64a78f1c63d211516d5317ffb36d59393b5c67f7 /sys/sys
parent58cca8458a944de5b59a86ec54e14d209a9ec365 (diff)
downloadFreeBSD-src-9023317312d7a126f09895797d7d7e1e9ccb1344.zip
FreeBSD-src-9023317312d7a126f09895797d7d7e1e9ccb1344.tar.gz
Merge sys/posix4/sched.h into sys/sched.h.
Approved by: silence on -arch and -standards
Diffstat (limited to 'sys/sys')
-rw-r--r--sys/sys/sched.h80
1 files changed, 77 insertions, 3 deletions
diff --git a/sys/sys/sched.h b/sys/sys/sched.h
index 46eb315..69e4a0c 100644
--- a/sys/sys/sched.h
+++ b/sys/sys/sched.h
@@ -1,4 +1,37 @@
/*-
+ * Copyright (c) 1996, 1997
+ * HD Associates, Inc. All rights reserved.
+ *
+ * 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.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by HD Associates, Inc
+ * and Jukka Antero Ukkonen.
+ * 4. Neither the name of the author nor the names of any co-contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES 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 HD ASSOCIATES 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.
+ */
+
+/*-
* Copyright (c) 2002, Jeffrey Roberson <jeff@freebsd.org>
* All rights reserved.
*
@@ -26,9 +59,10 @@
* $FreeBSD$
*/
-#ifndef _SYS_SCHED_H_
-#define _SYS_SCHED_H_
+#ifndef _SCHED_H_
+#define _SCHED_H_
+#ifdef _KERNEL
/*
* General scheduling info.
*
@@ -138,5 +172,45 @@ void sched_newproc(struct proc *p, struct ksegrp *kg, struct thread *td);
void sched_thread_exit(struct thread *td);
#endif
void sched_newthread(struct thread *td);
+#endif /* _KERNEL */
+
+/* POSIX 1003.1b Process Scheduling */
-#endif /* !_SYS_SCHED_H_ */
+/*
+ * POSIX scheduling policies
+ */
+#define SCHED_FIFO 1
+#define SCHED_OTHER 2
+#define SCHED_RR 3
+
+struct sched_param {
+ int sched_priority;
+};
+
+/*
+ * POSIX scheduling declarations for userland.
+ */
+#ifndef _KERNEL
+#include <sys/cdefs.h>
+#include <sys/_types.h>
+
+#ifndef _PID_T_DECLARED
+typedef __pid_t pid_t;
+#define _PID_T_DECLARED
+#endif
+
+struct timespec;
+
+__BEGIN_DECLS
+int sched_get_priority_max(int);
+int sched_get_priority_min(int);
+int sched_getparam(pid_t, struct sched_param *);
+int sched_getscheduler(pid_t);
+int sched_rr_get_interval(pid_t, struct timespec *);
+int sched_setparam(pid_t, const struct sched_param *);
+int sched_setscheduler(pid_t, int, const struct sched_param *);
+int sched_yield(void);
+__END_DECLS
+
+#endif
+#endif /* !_SCHED_H_ */
OpenPOWER on IntegriCloud