From dd7c04a39bd88da8e381bb88078c41b049a6665c Mon Sep 17 00:00:00 2001 From: Kimplul Date: Fri, 21 Oct 2022 21:34:18 +0300 Subject: beautification --- common/uapi/cap.c | 19 ++++++++++--------- common/uapi/conf.c | 8 ++++---- common/uapi/dispatch.c | 10 +++++----- common/uapi/ipc.c | 14 +++++++------- common/uapi/mem.c | 24 ++++++++++++------------ common/uapi/proc.c | 33 +++++++++++++++++---------------- common/uapi/timers.c | 30 ++++++++++++------------------ 7 files changed, 67 insertions(+), 71 deletions(-) (limited to 'common/uapi') diff --git a/common/uapi/cap.c b/common/uapi/cap.c index 84dbc45..3495960 100644 --- a/common/uapi/cap.c +++ b/common/uapi/cap.c @@ -38,14 +38,14 @@ SYSCALL_DEFINE3(set_cap)(sys_arg_t tid, sys_arg_t off, sys_arg_t caps) { struct tcb *t = cur_tcb(); if (!is_set(t->caps, CAP_CAPS)) - return (struct sys_ret){ERR_PERM, 0, 0, 0, 0, 0}; + return SYS_RET1(ERR_PERM); capflags_t *c; if (!(c = __get_tcb_caps(tid, off))) - return (struct sys_ret){ERR_INVAL, 0, 0, 0, 0, 0}; + return SYS_RET1(ERR_INVAL); set_caps(*c, off, caps); - return (struct sys_ret){OK, 0, 0, 0, 0, 0}; + return SYS_RET1(OK); } /** @@ -59,9 +59,9 @@ SYSCALL_DEFINE2(get_cap)(sys_arg_t tid, sys_arg_t off) { capflags_t *c; if (!(c = __get_tcb_caps(tid, off))) - return (struct sys_ret){ERR_INVAL, 0, 0, 0, 0, 0}; + return SYS_RET1(ERR_INVAL); - return (struct sys_ret){OK, get_caps(*c, off), 0, 0, 0, 0}; + return SYS_RET2(OK, get_caps(*c, off)); } /** @@ -70,18 +70,19 @@ SYSCALL_DEFINE2(get_cap)(sys_arg_t tid, sys_arg_t off) * @param tid Thread ID whose capabilities to clear. * @param off Offset of capability, multiple of \c bits(cap). * @param caps Mask of capabilities to clear. - * @return \ref OK. + * @return ERR_LERM if invalid permissions, ERR_INVAL if \p tid doesn't exist, + * otherwise OK. */ SYSCALL_DEFINE3(clear_cap)(sys_arg_t tid, sys_arg_t off, sys_arg_t caps) { struct tcb *t = cur_tcb(); if (!is_set(t->caps, CAP_CAPS)) - return (struct sys_ret){ERR_PERM, 0, 0, 0, 0, 0}; + return SYS_RET1(ERR_PERM); capflags_t *c; if (!(c = __get_tcb_caps(tid, off))) - return (struct sys_ret){ERR_INVAL, 0, 0, 0, 0, 0}; + return SYS_RET1(ERR_INVAL); clear_caps(*c, off, caps); - return (struct sys_ret){OK, 0, 0, 0, 0, 0}; + return SYS_RET1(OK); } diff --git a/common/uapi/conf.c b/common/uapi/conf.c index 867d182..7e88358 100644 --- a/common/uapi/conf.c +++ b/common/uapi/conf.c @@ -27,7 +27,7 @@ size_t __call_stack_size = SZ_2M; */ SYSCALL_DEFINE1(conf_get)(sys_arg_t param) { - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } /** @@ -45,7 +45,7 @@ SYSCALL_DEFINE2(conf_set)(sys_arg_t param, sys_arg_t val) UNUSED(val); /* no parameters supported atm */ - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } /** @@ -61,8 +61,8 @@ SYSCALL_DEFINE1(poweroff)(sys_arg_t type) case SHUTDOWN: case COLD_REBOOT: case WARM_REBOOT: - return (struct sys_ret){ OK, poweroff(type), 0, 0, 0, 0 }; + return SYS_RET2(OK, poweroff(type)); }; - return (struct sys_ret){ ERR_INVAL, 0, 0, 0, 0, 0 }; + return SYS_RET1(ERR_INVAL); } diff --git a/common/uapi/dispatch.c b/common/uapi/dispatch.c index db15b62..91fba83 100644 --- a/common/uapi/dispatch.c +++ b/common/uapi/dispatch.c @@ -64,7 +64,7 @@ static const sys_t syscall_table[] = { */ SYSCALL_DEFINE0(noop)(){ info("sys_noop\n"); - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } /** @@ -77,7 +77,7 @@ SYSCALL_DEFINE1(putch)(sys_arg_t a){ const char c[2] = {a, 0}; MAYBE_UNUSED(c); dbg((const char *)&c); - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } struct sys_ret syscall_dispatch(sys_arg_t syscall, sys_arg_t a, sys_arg_t b, @@ -89,13 +89,13 @@ struct sys_ret syscall_dispatch(sys_arg_t syscall, sys_arg_t a, sys_arg_t b, if (sc >= ARRAY_SIZE(syscall_table)) { error("Syscall %zu outside allowed range [0 - %zu]\n", sc, ARRAY_SIZE(syscall_table)); - return (struct sys_ret){ ERR_INVAL, 0, 0, 0, 0, 0 }; + return SYS_RET1(ERR_INVAL); } sys_t call = syscall_table[sc]; if (!call) { error("Syscall %zu not legitimate value\n", sc); - return (struct sys_ret){ ERR_INVAL, 0, 0, 0, 0, 0 }; + return SYS_RET1(ERR_INVAL); } struct sys_ret r = call(a, b, c, d, e); @@ -104,7 +104,7 @@ struct sys_ret syscall_dispatch(sys_arg_t syscall, sys_arg_t a, sys_arg_t b, bug("Syscall %zu overwrote stack canary\n", syscall); /** @todo should probably halt, as the system is likely in an * unstable state. */ - return (struct sys_ret){ ERR_INT, 0, 0, 0, 0, 0 }; + return SYS_RET1(ERR_INT); } return r; diff --git a/common/uapi/ipc.c b/common/uapi/ipc.c index 826fd57..dba33b0 100644 --- a/common/uapi/ipc.c +++ b/common/uapi/ipc.c @@ -18,7 +18,7 @@ SYSCALL_DEFINE1(ipc_server)(sys_arg_t callback) { cur_tcb()->callback = callback; - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } /** @@ -29,7 +29,7 @@ SYSCALL_DEFINE1(ipc_server)(sys_arg_t callback) * @param d1 IPC argument 1. * @param d2 IPC argument 2. * @param d3 IPC argument 3. - * @return \c d0 and \c d1. + * @return When succesful: OK, thread id of the caller and the arguments as-is. */ SYSCALL_DEFINE5(ipc_req)(sys_arg_t pid, sys_arg_t d0, sys_arg_t d1, sys_arg_t d2, sys_arg_t d3) @@ -38,7 +38,7 @@ SYSCALL_DEFINE5(ipc_req)(sys_arg_t pid, struct tcb *r = get_tcb(pid); /** \todo something like jump_to_callback(t) */ /* remember difference between ipc_req and ipc_fwd! */ - return (struct sys_ret){ OK, t->tid, d0, d1, d2, d3 }; + return SYS_RET6(OK, t->tid, d0, d1, d2, d3); } /** @@ -49,7 +49,7 @@ SYSCALL_DEFINE5(ipc_req)(sys_arg_t pid, * @param d1 IPC argument 1. * @param d2 IPC argument 2. * @param d3 IPC argument 3. - * @return \p d0 and \p d1. + * @return */ SYSCALL_DEFINE5(ipc_fwd)(sys_arg_t pid, sys_arg_t d0, sys_arg_t d1, sys_arg_t d2, sys_arg_t d3) @@ -57,7 +57,7 @@ SYSCALL_DEFINE5(ipc_fwd)(sys_arg_t pid, struct tcb *t = cur_tcb(); struct tcb *r = get_tcb(pid); /* ditto */ - return (struct sys_ret){ OK, t->tid, d0, d1, d2, d3 }; + return SYS_RET6(OK, t->tid, d0, d1, d2, d3); } /** @@ -74,7 +74,7 @@ SYSCALL_DEFINE4(ipc_resp)(sys_arg_t d0, sys_arg_t d1, sys_arg_t d2, { struct tcb *t = cur_tcb(); /* something like return_from_callback(t, r) */ - return (struct sys_ret){ OK, t->tid, d0, d1, d2, d3 }; + return SYS_RET6(OK, t->tid, d0, d1, d2, d3); } /** @@ -114,5 +114,5 @@ SYSCALL_DEFINE2(ipc_notify)(sys_arg_t tid, sys_arg_t swap){ * otherwise wait for return from rpc. If not running, * just queue the interrupt. */ - return (struct sys_ret){ OK, 0, 0 /* type */, 0, 0, 0 }; + return SYS_RET1(OK); } diff --git a/common/uapi/mem.c b/common/uapi/mem.c index 8da0f15..599c971 100644 --- a/common/uapi/mem.c +++ b/common/uapi/mem.c @@ -26,9 +26,9 @@ SYSCALL_DEFINE2(req_mem)(sys_arg_t size, sys_arg_t flags) struct tcb *r = cur_proc(); vm_t start = 0; if ((start = alloc_uvmem(r, size, flags))) - return (struct sys_ret){ ERR_OOMEM, NULL, 0, 0, 0, 0 }; + return SYS_RET1(ERR_OOMEM); - return (struct sys_ret){ OK, start, 0, 0, 0, 0 }; + return SYS_RET2(OK, start); } /** @@ -45,9 +45,9 @@ SYSCALL_DEFINE3(req_fixmem)(sys_arg_t fixed, sys_arg_t size, sys_arg_t flags) struct tcb *r = cur_proc(); vm_t start = 0; if ((start = alloc_fixed_uvmem(r, fixed, size, flags))) - return (struct sys_ret){ ERR_OOMEM, NULL, 0, 0, 0, 0 }; + return SYS_RET1(ERR_OOMEM); - return (struct sys_ret){ OK, start, 0, 0, 0, 0 }; + return SYS_RET2(OK, start); } /** @@ -68,9 +68,9 @@ SYSCALL_DEFINE1(free_mem)(sys_arg_t start) status = free_devmem(r, vm_start); if (status) - return (struct sys_ret){ ERR_NF, 0, 0, 0, 0, 0 }; + return SYS_RET1(ERR_NF); - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } /** @@ -92,9 +92,9 @@ SYSCALL_DEFINE3(req_pmem)(sys_arg_t paddr, sys_arg_t size, sys_arg_t flags) struct tcb *r = cur_proc(); vm_t start = 0; if ((start = alloc_devmem(r, paddr, size, flags))) - return (struct sys_ret){ ERR_OOMEM, NULL, 0, 0, 0, 0 }; + return SYS_RET1(ERR_OOMEM); - return (struct sys_ret){ OK, start, 0, 0, 0, 0 }; + return SYS_RET2(OK, start); } /** @@ -111,9 +111,9 @@ SYSCALL_DEFINE2(req_sharedmem)(sys_arg_t size, sys_arg_t flags) struct tcb *t = cur_proc(); vm_t start = 0; if ((start = alloc_shared_uvmem(t, size, flags))) - return (struct sys_ret){ ERR_OOMEM, NULL, 0, 0, 0, 0 }; + return SYS_RET1(ERR_OOMEM); - return (struct sys_ret){ OK, start, 0, 0, 0, 0 }; + return SYS_RET2(OK, start); } /** @@ -131,9 +131,9 @@ SYSCALL_DEFINE3(ref_sharedmem)(sys_arg_t tid, sys_arg_t va, sys_arg_t flags) struct tcb *t2 = get_tcb(tid); vm_t start = 0; if ((start = ref_shared_uvmem(t1, t2, va, flags))) - return (struct sys_ret){ ERR_OOMEM, NULL, 0, 0, 0, 0 }; + return SYS_RET1(ERR_OOMEM); - return (struct sys_ret){ OK, start, 0, 0, 0, 0 }; + return SYS_RET2(OK, start); } /** \todo add some way to specify who gets to access the shared memory? */ diff --git a/common/uapi/proc.c b/common/uapi/proc.c index a9a3dce..a60aa52 100644 --- a/common/uapi/proc.c +++ b/common/uapi/proc.c @@ -25,7 +25,7 @@ * @return \ref OK and 0. */ SYSCALL_DEFINE2(create)(sys_arg_t func, sys_arg_t arg){ - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } /** @@ -44,7 +44,7 @@ SYSCALL_DEFINE2(create)(sys_arg_t func, sys_arg_t arg){ * @return \ref OK and 0. */ SYSCALL_DEFINE0(fork)(){ - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } /** @@ -52,7 +52,7 @@ SYSCALL_DEFINE0(fork)(){ * * @param bin Binary to execute. * @param interp Optional interpreter binary. - * @return \see prepare_proc() and 0. + * @return \see prepare_proc(). */ SYSCALL_DEFINE2(exec)(sys_arg_t bin, sys_arg_t interp){ /** \todo execute new process, probably with more sensible argc passing */ @@ -61,7 +61,8 @@ SYSCALL_DEFINE2(exec)(sys_arg_t bin, sys_arg_t interp){ /* mark binary to be kept */ struct mem_region *b = find_used_region(&r->sp_r, bin); if (!b) - return (struct sys_ret){ERR_INVAL, 0, 0, 0, 0, 0}; + return SYS_RET1(ERR_INVAL); + set_bit(b->flags, MR_KEEP); struct mem_region *i = 0; @@ -69,7 +70,8 @@ SYSCALL_DEFINE2(exec)(sys_arg_t bin, sys_arg_t interp){ /* mark interpreter to be kept */ i = find_used_region(&r->sp_r, interp); if (!i) - return (struct sys_ret){ERR_INVAL, 1, 0, 0, 0, 0}; + return SYS_RET1(ERR_INVAL); + set_bit(i->flags, MR_KEEP); } @@ -81,7 +83,7 @@ SYSCALL_DEFINE2(exec)(sys_arg_t bin, sys_arg_t interp){ if (interp) clear_bit(b->flags, MR_KEEP); - return (struct sys_ret){ prepare_proc(r, bin, interp), 0, 0, 0, 0, 0 }; + return SYS_RET1(prepare_proc(r, bin, interp)); } /** @@ -89,15 +91,15 @@ SYSCALL_DEFINE2(exec)(sys_arg_t bin, sys_arg_t interp){ * * @param bin Binary to execute. * @param interp Optional interpreter binary. - * @return \see prepare_proc() and 0. + * @return \see prepare_proc() and process id of the new process. */ SYSCALL_DEFINE2(spawn)(sys_arg_t bin, sys_arg_t interp) { struct tcb *t = create_proc(NULL); if (!t) - return (struct sys_ret){ERR_OOMEM, 0, 0, 0, 0, 0}; + return SYS_RET1(ERR_OOMEM); - return (struct sys_ret){prepare_proc(t, bin, interp), t->pid, 0, 0, 0, 0}; + return SYS_RET2(prepare_proc(t, bin, interp), t->pid); } /** @@ -106,11 +108,11 @@ SYSCALL_DEFINE2(spawn)(sys_arg_t bin, sys_arg_t interp) * @param tid Thread to kill. * \todo Implement. * - * @return No? + * @return ERR_PERM if not capable to kill, otherwise OK. */ SYSCALL_DEFINE1(kill)(sys_arg_t tid) { - return (struct sys_ret){ OK, 0, 0, 0, 0, 0}; + return SYS_RET1(OK); } /** @@ -121,17 +123,16 @@ SYSCALL_DEFINE1(kill)(sys_arg_t tid) * for message passing? * * @param tid Thread ID to swap to. - * @return \ref OK and 0. + * @return \ref OK. */ SYSCALL_DEFINE1(swap)(sys_arg_t tid){ struct tcb *t = get_tcb(tid); if (!t) - /** @todo add error sys_ret macro? */ - return (struct sys_ret){ERR_INVAL, 0, 0, 0, 0, 0}; + return SYS_RET1(ERR_INVAL); /* switch over to new thread */ use_tcb(t); - + return get_args(t); } @@ -145,5 +146,5 @@ SYSCALL_DEFINE1(swap)(sys_arg_t tid){ */ SYSCALL_DEFINE2(assign)(sys_arg_t tid, sys_arg_t cpu) { - return (struct sys_ret){OK, 0, 0, 0, 0, 0}; + return SYS_RET1(OK); } diff --git a/common/uapi/timers.c b/common/uapi/timers.c index 5c2f58f..80cef1d 100644 --- a/common/uapi/timers.c +++ b/common/uapi/timers.c @@ -42,9 +42,9 @@ SYSCALL_DEFINE0(timebase)() { ticks_t t = secs_to_ticks(1); #if defined(_LP64) - return (struct sys_ret){ OK, t, 0, 0, 0, 0 }; + return SYS_RET2(OK, t); #else - return (struct sys_ret){ OK, t >> 32, t}; + return SYS_RET3(OK, t >> 32, t); #endif } @@ -62,9 +62,9 @@ SYSCALL_DEFINE0(ticks)() { ticks_t t = current_ticks(); #if defined(_LP64) - return (struct sys_ret){ OK, t, 0, 0, 0, 0}; + return SYS_RET2(OK, t); #else - return (struct sys_ret){ OK, t >> 32, t, 0, 0, 0 }; + return SYS_RET3(OK, t >> 32, t); #endif } @@ -81,12 +81,9 @@ SYSCALL_DEFINE0(ticks)() */ SYSCALL_DEFINE2(req_rel_timer)(sys_arg_t ticks, sys_arg_t mult) { - return (struct sys_ret){ - OK, - new_rel_timer(cur_tcb()->tid, - scaled_ticks(ticks, mult)), - 0, 0, 0, 0 - }; + return SYS_RET2(OK, + new_rel_timer(cur_tcb()->tid, + scaled_ticks(ticks, mult))); } /** @@ -99,12 +96,9 @@ SYSCALL_DEFINE2(req_rel_timer)(sys_arg_t ticks, sys_arg_t mult) */ SYSCALL_DEFINE2(req_abs_timer)(sys_arg_t ticks, sys_arg_t mult) { - return (struct sys_ret){ - OK, - new_abs_timer(cur_tcb()->tid, - scaled_ticks(ticks, mult)), - 0, 0, 0, 0 - }; + return SYS_RET2(OK, + new_abs_timer(cur_tcb()->tid, + scaled_ticks(ticks, mult))); } /** @@ -118,8 +112,8 @@ SYSCALL_DEFINE1(free_timer)(sys_arg_t cid) { struct timer *timer = find_timer(cid); if (!timer) - return (struct sys_ret){ ERR_NF, 0, 0, 0, 0, 0 }; + return SYS_RET1(ERR_NF); remove_timer(timer); - return (struct sys_ret){ OK, 0, 0, 0, 0, 0 }; + return SYS_RET1(OK); } -- cgit v1.3