summaryrefslogtreecommitdiff
path: root/kernel/sched/scheduler.c
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-03-17 20:55:34 +0100
committerAnton Kling <anton@kling.gg>2024-03-17 20:55:34 +0100
commit0dccff86e50dfe1555b8bc29862dba2b972a3705 (patch)
tree8d0c354c65278afdc3427bb52e1e63900ccdbc05 /kernel/sched/scheduler.c
parent2e8b474d4219e7faaac3823e73c8d528c2698a37 (diff)
stuff
Diffstat (limited to 'kernel/sched/scheduler.c')
-rw-r--r--kernel/sched/scheduler.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/sched/scheduler.c b/kernel/sched/scheduler.c
index cbb28fa..e202be2 100644
--- a/kernel/sched/scheduler.c
+++ b/kernel/sched/scheduler.c
@@ -1,4 +1,5 @@
#include <assert.h>
+#include <cpu/arch_inst.h>
#include <cpu/io.h>
#include <defs.h>
#include <drivers/pit.h>
@@ -433,6 +434,9 @@ process_t *next_task(process_t *s) {
if (!c) {
c = ready_queue;
}
+ if (s == c) {
+ wait_for_interrupt();
+ }
if (c->sleep_until > pit_num_ms()) {
continue;
}
@@ -547,7 +551,7 @@ void *mmap(void *addr, size_t length, int prot, int flags, int fd,
*ptr = kmalloc(sizeof(MemoryMap));
MemoryMap *free_map = *ptr;
- if (fd == -1) {
+ if (-1 == fd) {
void *rc = allocate_virtual_user_memory(length, prot, flags);
if ((void *)-1 == rc) {
kprintf("ENOMEM\n");