summaryrefslogtreecommitdiff
path: root/sys/os
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-11-19 22:56:12 -0500
committerIan Moffett <ian@osmora.org>2025-11-19 22:56:12 -0500
commit7ea67beff9fdf4b57381b5c197f1f8c362bb9099 (patch)
treeb94fc7359f3a2caa142e22d75c2b14bf1b0dfff3 /sys/os
parent5a3204039b6033d15ca8812cfc7e9d523c9da2bb (diff)
kern: sched: Add function to dequeue processes
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/os')
-rw-r--r--sys/os/os_sched.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/os/os_sched.c b/sys/os/os_sched.c
index e0dfc98..7d3b485 100644
--- a/sys/os/os_sched.c
+++ b/sys/os/os_sched.c
@@ -64,3 +64,21 @@ sched_enqueue_proc(struct process *proc)
TAILQ_INSERT_TAIL(&core->pqueue, proc, link);
return core;
}
+
+struct process *
+sched_dequeue_proc(void)
+{
+ struct cpu_info *core;
+ struct process *proc;
+
+ core = cpu_self();
+ if (core == NULL) {
+ return NULL;
+ }
+
+ proc = TAILQ_FIRST(&core->pqueue);
+ if (proc != NULL) {
+ TAILQ_REMOVE(&core->pqueue, proc, link);
+ }
+ return proc;
+}