summaryrefslogtreecommitdiff
path: root/kernel/usermode.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/usermode.c')
-rw-r--r--kernel/usermode.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/usermode.c b/kernel/usermode.c
index b6d01f3..1c039cb 100644
--- a/kernel/usermode.c
+++ b/kernel/usermode.c
@@ -34,6 +34,7 @@ void initfunc()
c2++;
}
}
+
void userfunc()
{
@@ -43,7 +44,10 @@ void userfunc()
// if we are pid 0, replace ourselves with /bin/init TODO: switch to usermode before!
if(task_get_current_pid()==0)
{
- usermode(&initfunc);
+ uint32_t alloc;
+ uint32_t entry_global=load_elf(BIN_INIT,&alloc);
+ task_set_brk(alloc);
+ usermode(entry_global);
}
// kernel worker thread on pid1