From 41ead8de77963bae907375c1bb115dad3315f46b Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sat, 12 Nov 2022 16:41:36 +0200 Subject: initial rpc implementations --- common/uapi/proc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'common/uapi/proc.c') diff --git a/common/uapi/proc.c b/common/uapi/proc.c index 969dcd6..7a078da 100644 --- a/common/uapi/proc.c +++ b/common/uapi/proc.c @@ -32,6 +32,8 @@ SYSCALL_DEFINE5(create)(sys_arg_t func, if (!t) return SYS_RET1(ERR_OOMEM); + alloc_stack(t); + set_args(t, SYS_RET5(t->tid, d0, d1, d2, d3)); set_return(t, func); @@ -55,7 +57,7 @@ SYSCALL_DEFINE5(create)(sys_arg_t func, */ SYSCALL_DEFINE0(fork)(){ struct tcb *c = cur_proc(); - if (!(get_caps(c->caps, 0) & CAP_PROC)) + if (!(has_cap(c->caps, CAP_PROC))) return SYS_RET1(ERR_PERM); struct tcb *t = create_proc(eff_proc()); @@ -118,7 +120,7 @@ SYSCALL_DEFINE2(exec)(sys_arg_t bin, sys_arg_t interp){ SYSCALL_DEFINE2(spawn)(sys_arg_t bin, sys_arg_t interp) { struct tcb *c = cur_proc(); - if (!(get_caps(c->caps, 0) & CAP_PROC)) + if (!(has_cap(c->caps, CAP_PROC))) return SYS_RET1(ERR_PERM); struct tcb *t = create_proc(NULL); @@ -139,7 +141,7 @@ SYSCALL_DEFINE2(spawn)(sys_arg_t bin, sys_arg_t interp) SYSCALL_DEFINE1(kill)(sys_arg_t tid) { struct tcb *c = cur_proc(); - if (!(get_caps(c->caps, 0) & CAP_PROC)) + if (!(has_cap(c->caps, CAP_PROC))) return SYS_RET1(ERR_PERM); return SYS_RET1(OK); @@ -157,7 +159,7 @@ SYSCALL_DEFINE1(kill)(sys_arg_t tid) */ SYSCALL_DEFINE1(swap)(sys_arg_t tid){ struct tcb *c = cur_proc(); - if (!(get_caps(c->caps, 0) & CAP_PROC)) + if (!(has_cap(c->caps, CAP_PROC))) return SYS_RET1(ERR_PERM); struct tcb *t = get_tcb(tid); -- cgit v1.3