From 1d37792fb7a47135f0e7b7fc245e83bb1d8fc496 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Fri, 11 Nov 2022 19:46:22 +0200 Subject: less buggy fork + Not strictly done yet, but we can swap between two processes :D --- common/uapi/proc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'common/uapi/proc.c') diff --git a/common/uapi/proc.c b/common/uapi/proc.c index 5dbd90c..969dcd6 100644 --- a/common/uapi/proc.c +++ b/common/uapi/proc.c @@ -62,8 +62,9 @@ SYSCALL_DEFINE0(fork)(){ if (!t) return SYS_RET1(ERR_OOMEM); - /* prepare args for when we eventually swap to the new proc */ - set_args(t, SYS_RET2(OK, 0)); + /* prepare args for when we eventually swap to the new proc, giving + * parent ID as third return value */ + set_args(t, SYS_RET3(OK, 0, c->pid)); return SYS_RET2(OK, t->pid); } @@ -166,5 +167,9 @@ SYSCALL_DEFINE1(swap)(sys_arg_t tid){ /* switch over to new thread */ use_tcb(t); + /* set return value for current thread */ + set_args(c, SYS_RET1(OK)); + + /* get register state for new thread */ return get_args(t); } -- cgit v1.3