aboutsummaryrefslogtreecommitdiff
path: root/kernel/main/kmain.c
diff options
context:
space:
mode:
authorsotech117 <michael_foiani@brown.edu>2024-02-11 07:36:50 +0000
committersotech117 <michael_foiani@brown.edu>2024-02-11 07:36:50 +0000
commit6cfe0ddd014597113e0635fcdecba9db0cc2c64b (patch)
treeb40bbeda9f1e7ca44c1d59e75b94ed168310a959 /kernel/main/kmain.c
parentc71b9e406a8fb7bfcaeb20ee787d6eb4a1cbb71d (diff)
basic implementation of most functions. not tested, but generally well thought out
Diffstat (limited to 'kernel/main/kmain.c')
-rw-r--r--kernel/main/kmain.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/main/kmain.c b/kernel/main/kmain.c
index 8dcb7e5..d037772 100644
--- a/kernel/main/kmain.c
+++ b/kernel/main/kmain.c
@@ -175,7 +175,18 @@ static void *initproc_run(long arg1, void *arg2)
*/
void initproc_start()
{
- NOT_YET_IMPLEMENTED("PROCS: initproc_start");
+ // NOT_YET_IMPLEMENTED("PROCS: initproc_start");
+
+ proc_t *init_proc = proc_create("init");
+ KASSERT(init_proc != NULL);
+
+ kthread_t *init_thread = kthread_create(init_proc, initproc_run, 0, NULL);
+ KASSERT(init_thread != NULL);
+
+ sched_make_runnable(init_thread);
+
+ context_make_active(&curcore.kc_ctx); // start the scheduler
+ // TODO: ask about how the core is linked to scheduler
}
void initproc_finish()