From d2f303680def13835f644a9879183da756c84e1f Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sun, 8 Feb 2026 13:10:54 +0000 Subject: [PATCH] sched: add root vm-region and handle table to struct task --- include/mango/sched.h | 2 ++ sched/core.c | 1 + sched/task.c | 10 ++++++++++ 3 files changed, 13 insertions(+) diff --git a/include/mango/sched.h b/include/mango/sched.h index 9363251..b6207f7 100644 --- a/include/mango/sched.h +++ b/include/mango/sched.h @@ -81,6 +81,8 @@ struct task { char t_name[TASK_NAME_MAX]; pmap_t t_pmap; + struct vm_region *t_address_space; + struct handle_table *t_handles; struct btree_node t_tasklist; struct queue_entry t_child_entry; diff --git a/sched/core.c b/sched/core.c index f20b96d..b88432e 100644 --- a/sched/core.c +++ b/sched/core.c @@ -4,6 +4,7 @@ #include #include #include +#include extern kern_status_t setup_kernel_task(void); extern kern_status_t setup_idle_task(void); diff --git a/sched/task.c b/sched/task.c index cad2a19..6b80ccf 100644 --- a/sched/task.c +++ b/sched/task.c @@ -1,10 +1,12 @@ #include #include +#include #include #include #include #include #include +#include #define TASK_CAST(p) OBJECT_C_CAST(struct task, t_base, &task_type, p) @@ -84,6 +86,14 @@ kern_status_t setup_kernel_task(void) __kernel_task->t_state = TASK_RUNNING; __kernel_task->t_pmap = get_kernel_pmap(); + vm_region_create( + NULL, + "root", + VM_KERNEL_BASE, + VM_KERNEL_LIMIT - VM_KERNEL_BASE, + VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXEC | VM_PROT_SVR, + &__kernel_task->t_address_space); + snprintf( __kernel_task->t_name, sizeof __kernel_task->t_name,