summaryrefslogtreecommitdiffstats
path: root/sys/sys/sched.h
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2004-06-20 08:25:30 +0000
committerderaadt <deraadt@openbsd.org>2004-06-20 08:25:30 +0000
commit6e7d34d915971fa6a9520943273581a391749983 (patch)
tree4df9904cd2ca68eacfafd1460336ed8941a3a06b /sys/sys/sched.h
parentMove schedstate_percpu into sched.h so that we don't have to include (diff)
downloadwireguard-openbsd-6e7d34d915971fa6a9520943273581a391749983.tar.xz
wireguard-openbsd-6e7d34d915971fa6a9520943273581a391749983.zip
nope, tree breakage in libpthread. too tough to run a make build?
Diffstat (limited to 'sys/sys/sched.h')
-rw-r--r--sys/sys/sched.h63
1 files changed, 23 insertions, 40 deletions
diff --git a/sys/sys/sched.h b/sys/sys/sched.h
index badaf18396f..65a35b4e7cd 100644
--- a/sys/sys/sched.h
+++ b/sys/sys/sched.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: sched.h,v 1.7 2004/06/20 06:47:31 art Exp $ */
+/* $OpenBSD: sched.h,v 1.8 2004/06/20 08:25:30 deraadt Exp $ */
/* $NetBSD: sched.h,v 1.2 1999/02/28 18:14:58 ross Exp $ */
/*-
@@ -80,39 +80,8 @@
* Posix defines a <sched.h> which may want to include <sys/sched.h>
*/
-/*
- * CPU states.
- * XXX Not really scheduler state, but no other good place to put
- * it right now, and it really is per-CPU.
- */
-#define CP_USER 0
-#define CP_NICE 1
-#define CP_SYS 2
-#define CP_INTR 3
-#define CP_IDLE 4
-#define CPUSTATES 5
-
#ifdef _KERNEL
-/*
- * Per-CPU scheduler state.
- */
-struct schedstate_percpu {
- struct timeval spc_runtime; /* time curproc started running */
- __volatile int spc_schedflags; /* flags; see below */
- u_int spc_schedticks; /* ticks for schedclock() */
- u_int64_t spc_cp_time[CPUSTATES]; /* CPU state statistics */
- u_char spc_curpriority; /* usrpri of curproc */
- int spc_rrticks; /* ticks until roundrobin() */
- int spc_pscnt; /* prof/stat counter */
- int spc_psdiv; /* prof/stat divisor */
-};
-
-/* spc_flags */
-#define SPCF_SEENRR 0x0001 /* process has seen roundrobin() */
-#define SPCF_SHOULDYIELD 0x0002 /* process should yield the CPU */
-#define SPCF_SWITCHCLEAR (SPCF_SEENRR|SPCF_SHOULDYIELD)
-
#define PPQ (128 / NQS) /* priorities per queue */
#define NICE_WEIGHT 2 /* priorities per nice level */
#define ESTCPULIM(e) min((e), NICE_WEIGHT * PRIO_MAX - PPQ)
@@ -120,22 +89,36 @@ struct schedstate_percpu {
extern int schedhz; /* ideally: 16 */
extern int rrticks_init; /* ticks per roundrobin() */
-struct proc;
+#ifdef _SYS_PROC_H_
void schedclock(struct proc *);
#ifdef __HAVE_CPUINFO
-struct cpu_info;
void roundrobin(struct cpu_info *);
#endif
+static __inline void scheduler_fork_hook(
+ struct proc *parent, struct proc *child);
+static __inline void scheduler_wait_hook(
+ struct proc *parent, struct proc *child);
/* Inherit the parent's scheduler history */
-#define scheduler_fork_hook(parent, child) do { \
- (child)->p_estcpu = (parent)->p_estcpu; \
-} while (0)
+
+static __inline void
+scheduler_fork_hook(parent, child)
+ struct proc *parent, *child;
+{
+ child->p_estcpu = parent->p_estcpu;
+}
/* Chargeback parents for the sins of their children. */
-#define scheduler_wait_hook(parent, child) do { \
- (parent)->p_estcpu = ESTCPULIM((parent)->p_estcpu + (child)->p_estcpu);\
-} while (0)
+
+static __inline void
+scheduler_wait_hook(parent, child)
+ struct proc *parent, *child;
+{
+ /* XXX just return if parent == init?? */
+
+ parent->p_estcpu = ESTCPULIM(parent->p_estcpu + child->p_estcpu);
+}
+#endif /* _SYS_PROC_H_ */
#ifndef splsched
#define splsched() splhigh()