aboutsummaryrefslogtreecommitdiff
path: root/src/proc.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-11-02 16:02:41 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2024-11-02 16:02:41 +0200
commit21efbba39340300a7ba9d5f4f94017f5ff956833 (patch)
treec9116d4e38a574a8edae7cdcebcd7569af9cb5a7 /src/proc.c
parentd127146846f4d6561e15000d1469b715dafdb627 (diff)
downloadkmi-21efbba39340300a7ba9d5f4f94017f5ff956833.tar.gz
kmi-21efbba39340300a7ba9d5f4f94017f5ff956833.zip
intial working sys_spawn
Diffstat (limited to 'src/proc.c')
-rw-r--r--src/proc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/proc.c b/src/proc.c
index c1dfc64..090ae20 100644
--- a/src/proc.c
+++ b/src/proc.c
@@ -25,8 +25,6 @@ stat_t prepare_proc(struct tcb *t, vm_t bin, vm_t interp)
return ERR_INVAL;
t->callback = entry;
- set_thread(t);
- set_return(t, entry);
return OK;
}
@@ -56,6 +54,8 @@ stat_t init_proc(void *fdt, vm_t *proc_fdt, vm_t *proc_initrd)
* save them here before we switch */
use_tcb(t);
+ set_thread(t);
+ set_return(t, t->callback);
set_stack(t, t->rpc_stack - BASE_PAGE_SIZE);
stat_t ret = prepare_proc(t, get_init_base(fdt), 0);