aboutsummaryrefslogtreecommitdiff
path: root/common/uapi
diff options
context:
space:
mode:
Diffstat (limited to 'common/uapi')
-rw-r--r--common/uapi/dispatch.c1
-rw-r--r--common/uapi/proc.c25
2 files changed, 10 insertions, 16 deletions
diff --git a/common/uapi/dispatch.c b/common/uapi/dispatch.c
index 91fba83..27cc001 100644
--- a/common/uapi/dispatch.c
+++ b/common/uapi/dispatch.c
@@ -44,7 +44,6 @@ static const sys_t syscall_table[] = {
[SYS_EXEC] = sys_exec,
[SYS_SPAWN] = sys_spawn,
[SYS_SWAP] = sys_swap,
- [SYS_ASSIGN] = sys_assign,
/* conf */
[SYS_CONF_SET] = sys_conf_set,
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);
-}