From 4404fa9b3d98646f942e32146722a9d0a68edc13 Mon Sep 17 00:00:00 2001 From: Miguel Date: Thu, 23 Aug 2018 03:20:56 +0200 Subject: never ending struggle with forking --- kernel/usermode.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'kernel/usermode.c') 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 -- cgit v1.2.3