aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-05-23 20:07:00 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-05-23 20:07:00 +0300
commit217d216516ebb7426ee5ab903358e1a2623f8700 (patch)
tree667fecd542808bfa150efdc9aead825bc48f1188
parenta99f70d8d7d6f771f4450ac8a12dd963bfe5fb08 (diff)
downloadkmi-217d216516ebb7426ee5ab903358e1a2623f8700.tar.gz
kmi-217d216516ebb7426ee5ab903358e1a2623f8700.zip
rename sys_switch to sys_swap
-rw-r--r--common/uapi/dispatch.c6
-rw-r--r--common/uapi/proc.c15
-rw-r--r--include/apos/syscalls.h22
-rw-r--r--include/apos/uapi.h2
4 files changed, 20 insertions, 25 deletions
diff --git a/common/uapi/dispatch.c b/common/uapi/dispatch.c
index 1e72e77..65e02a3 100644
--- a/common/uapi/dispatch.c
+++ b/common/uapi/dispatch.c
@@ -31,15 +31,14 @@ static const sys_t syscall_table[] = {
[SYS_FORK] = sys_fork,
[SYS_EXEC] = sys_exec,
[SYS_SIGNAL] = sys_signal,
- [SYS_SWITCH] = sys_switch,
+ [SYS_SWAP] = sys_swap,
/* conf */
[SYS_CONF] = sys_conf,
[SYS_POWEROFF] = sys_poweroff,
};
-SYSCALL_DEFINE0(noop)()
-{
+SYSCALL_DEFINE0(noop)(){
return (struct sys_ret){ OK, 0 };
}
@@ -47,6 +46,7 @@ struct sys_ret syscall_dispatch(sys_arg_t syscall, sys_arg_t a, sys_arg_t b,
sys_arg_t c, sys_arg_t d)
{
sys_t call = syscall_table[syscall];
+
if (!call)
return (struct sys_ret){ ERR_INVAL, 0 };
diff --git a/common/uapi/proc.c b/common/uapi/proc.c
index 43e825d..e36c62e 100644
--- a/common/uapi/proc.c
+++ b/common/uapi/proc.c
@@ -5,8 +5,7 @@
#include <apos/uapi.h>
-SYSCALL_DEFINE0(create)()
-{
+SYSCALL_DEFINE0(create)(){
return (struct sys_ret){ OK, 0 };
}
@@ -20,25 +19,21 @@ SYSCALL_DEFINE0(create)()
* would have to periodically ask the kernel about all threads it is aware of
* via sys_sync. Dunno.
*/
-SYSCALL_DEFINE0(fork)()
-{
+SYSCALL_DEFINE0(fork)(){
return (struct sys_ret){ OK, 0 };
}
-SYSCALL_DEFINE3(exec)(sys_arg_t bin, sys_arg_t argc, sys_arg_t argv)
-{
+SYSCALL_DEFINE3(exec)(sys_arg_t bin, sys_arg_t argc, sys_arg_t argv){
/* TODO: execute new process, probably with more sensible argc passing */
return (struct sys_ret){ OK, 0 };
}
-SYSCALL_DEFINE2(signal)(sys_arg_t tid, sys_arg_t signal)
-{
+SYSCALL_DEFINE2(signal)(sys_arg_t tid, sys_arg_t signal){
/* TODO: signals? */
return (struct sys_ret){ OK, 0 };
}
-SYSCALL_DEFINE1(switch)(sys_arg_t tid)
-{
+SYSCALL_DEFINE1(swap)(sys_arg_t tid){
/* TODO: switch to process */
/* TODO: should switch return the registers of the new thread that would
* be used for message passing? */
diff --git a/include/apos/syscalls.h b/include/apos/syscalls.h
index 19e27ea..e89d07a 100644
--- a/include/apos/syscalls.h
+++ b/include/apos/syscalls.h
@@ -14,10 +14,10 @@ enum {
SYS_NOOP,
/* memory management */
- SYS_REQ_MEM, /* request memory from anywhere */
- SYS_REQ_PMEM, /* request physical address */
+ SYS_REQ_MEM, /* request memory from anywhere */
+ SYS_REQ_PMEM, /* request physical address */
SYS_REQ_FIXMEM, /* request memory at fixed address */
- SYS_FREE_MEM, /* free memory */
+ SYS_FREE_MEM, /* free memory */
/* timers */
SYS_TIMEBASE,
@@ -29,21 +29,21 @@ enum {
/* I really should try to find my notes about the server/client
* structure of the OS, but these following syscalls are probably
* required */
- SYS_IPC_SERVER, /* inform kernel that process should be treated as a server */
- SYS_IPC_REQ_PROC, /* IPC request to server on behalf of process */
+ SYS_IPC_SERVER, /* inform kernel that process should be treated as a server */
+ SYS_IPC_REQ_PROC, /* IPC request to server on behalf of process */
SYS_IPC_REQ_THREAD, /* IPC request to server on behalf of thread */
- SYS_IPC_RESP, /* IPC response from server */
+ SYS_IPC_RESP, /* IPC response from server */
/* process management */
SYS_CREATE, /* create new thread */
- SYS_FORK, /* duplicate process */
- SYS_EXEC, /* execute new binary in process space */
- SYS_KILL, /* kill thread */
+ SYS_FORK, /* duplicate process */
+ SYS_EXEC, /* execute new binary in process space */
+ SYS_KILL, /* kill thread */
SYS_SIGNAL, /* send signal to process (kill etc.) */
- SYS_SWITCH, /* switch running process */
+ SYS_SWAP /* switch running process */
/* kernel management */
- SYS_CONF, /* config system parameters (stack size etc.) */
+ SYS_CONF, /* config system parameters (stack size etc.) */
SYS_POWEROFF, /* shutdown/reboot etc. */
};
diff --git a/include/apos/uapi.h b/include/apos/uapi.h
index d33a855..dc20187 100644
--- a/include/apos/uapi.h
+++ b/include/apos/uapi.h
@@ -108,7 +108,7 @@ SYSCALL_DECLARE(create);
SYSCALL_DECLARE(fork);
SYSCALL_DECLARE(exec);
SYSCALL_DECLARE(signal);
-SYSCALL_DECLARE(switch);
+SYSCALL_DECLARE(swap);
/* conf */
SYSCALL_DECLARE(conf);