diff options
Diffstat (limited to 'common/uapi/proc.c')
| -rw-r--r-- | common/uapi/proc.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/common/uapi/proc.c b/common/uapi/proc.c index a60aa52..ea42a3a 100644 --- a/common/uapi/proc.c +++ b/common/uapi/proc.c @@ -24,7 +24,8 @@ * * @return \ref OK and 0. */ -SYSCALL_DEFINE2(create)(sys_arg_t func, sys_arg_t arg){ +SYSCALL_DEFINE5(create)(sys_arg_t func, + sys_arg_t d0, sys_arg_t d1, sys_arg_t d2, sys_arg_t d3){ return SYS_RET1(OK); } @@ -44,7 +45,14 @@ SYSCALL_DEFINE2(create)(sys_arg_t func, sys_arg_t arg){ * @return \ref OK and 0. */ SYSCALL_DEFINE0(fork)(){ - return SYS_RET1(OK); + struct tcb *t = create_proc(cur_proc()); + if (!t) + return SYS_RET1(ERR_OOMEM); + + /* prepare args for when we eventually swap to the new proc */ + set_args(t, SYS_RET2(OK, t->pid)); + + return SYS_RET2(OK, 0); } /** @@ -135,16 +143,3 @@ SYSCALL_DEFINE1(swap)(sys_arg_t tid){ return get_args(t); } - -/** - * Assign syscall handler. - * - * \todo Implement. - * @param tid Thread to assign to \p cpu. - * @param cpu Cpu to run \p tid on. - * @return \ref OK. - */ -SYSCALL_DEFINE2(assign)(sys_arg_t tid, sys_arg_t cpu) -{ - return SYS_RET1(OK); -} |
