diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-07-27 20:29:28 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2023-07-27 20:29:28 +0300 |
| commit | 3212707a9ab549119ad0ad6441a07fe774c99f3b (patch) | |
| tree | 9df1e69c92dabfea37202008f77f8a100c0a7de4 /common/uapi/conf.c | |
| parent | a26fb216729ba7a7d0fbfc97c2082c9db512aa36 (diff) | |
| download | kmi-3212707a9ab549119ad0ad6441a07fe774c99f3b.tar.gz kmi-3212707a9ab549119ad0ad6441a07fe774c99f3b.zip | |
use nifty variable argument count trick
+ Found it in newlib. This allows the compiler to more effectively
optimize away unnecessary register operations. Applied to both kernel
and init.c for a slight speed increase.
I really should move init.c to some other repository though, the
binary files are starting to get annoying
Diffstat (limited to 'common/uapi/conf.c')
| -rw-r--r-- | common/uapi/conf.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/common/uapi/conf.c b/common/uapi/conf.c index ea06e06..13be3ee 100644 --- a/common/uapi/conf.c +++ b/common/uapi/conf.c @@ -41,7 +41,7 @@ enum conf_param { SYSCALL_DEFINE1(conf_get)(struct tcb *t, sys_arg_t param) { if (!has_cap(t->caps, CAP_CONF)) - return_args(t, SYS_RET1(ERR_PERM)); + return_args1(t, ERR_PERM); long val = 0; switch (param) { @@ -58,10 +58,10 @@ SYSCALL_DEFINE1(conf_get)(struct tcb *t, sys_arg_t param) break; default: - return_args(t, SYS_RET1(ERR_NF)); + return_args1(t, ERR_NF); } - return_args(t, SYS_RET2(OK, val)); + return_args2(t, OK, val); } /** @@ -77,7 +77,7 @@ SYSCALL_DEFINE1(conf_get)(struct tcb *t, sys_arg_t param) SYSCALL_DEFINE2(conf_set)(struct tcb *t, sys_arg_t param, sys_arg_t val) { if (!has_cap(t->caps, CAP_CONF)) - return_args(t, SYS_RET1(ERR_PERM)); + return_args1(t, ERR_PERM); size_t size = 0; switch (param) { @@ -96,13 +96,13 @@ SYSCALL_DEFINE2(conf_set)(struct tcb *t, sys_arg_t param, sys_arg_t val) case CONF_RPC_STACK: size = align_up(val, BASE_PAGE_SIZE); if (size > __call_stack_size) - return_args(t, SYS_RET1(ERR_MISC)); + return_args1(t, ERR_MISC); __rpc_stack_size = size; break; } - return_args(t, SYS_RET1(OK)); + return_args1(t, OK); } /** @@ -116,14 +116,14 @@ SYSCALL_DEFINE2(conf_set)(struct tcb *t, sys_arg_t param, sys_arg_t val) SYSCALL_DEFINE1(poweroff)(struct tcb *t, sys_arg_t type) { if (!(has_cap(t->caps, CAP_POWER))) - return_args(t, SYS_RET1(ERR_PERM)); + return_args1(t, ERR_PERM); switch (type) { case SHUTDOWN: case COLD_REBOOT: case WARM_REBOOT: - return_args(t, SYS_RET2(OK, poweroff(type))); + return_args2(t, OK, poweroff(type)); }; - return_args(t, SYS_RET1(ERR_INVAL)); + return_args1(t, ERR_INVAL); } |
