summaryrefslogtreecommitdiff
path: root/sys/kern/kern_syscall.c
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-06-29 20:51:57 -0400
committerIan Moffett <ian@osmora.org>2025-06-29 20:51:57 -0400
commit78fe4f99b6cb6c85be3d28fdb7ee8ac6de55575e (patch)
treed2cc2b9ab9fafaa2c54936d2bd624243d32fea18 /sys/kern/kern_syscall.c
parent1551310aa5484a483cad4e6ae4a358cb509cbef8 (diff)
kernel: Introduce SYS_inject syscall
The SYS_inject syscall will allow the user to inject Kernel Runtime Quantums (KRQs) into the running kernel. As of now, set paths are not supported and the initial implementation includes a NULL path used to load all deferrable drivers. Previously during kernel startup, all deferrable drivers were loaded automatically. This commit makes it so that they are only loaded when sys_inject() is called with a NULL path. Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys/kern/kern_syscall.c')
-rw-r--r--sys/kern/kern_syscall.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/kern_syscall.c b/sys/kern/kern_syscall.c
index b1deb7a..292fa56 100644
--- a/sys/kern/kern_syscall.c
+++ b/sys/kern/kern_syscall.c
@@ -35,6 +35,7 @@
#include <sys/mman.h>
#include <sys/proc.h>
#include <sys/vfs.h>
+#include <sys/krq.h>
scret_t(*g_sctab[])(struct syscall_args *) = {
NULL, /* SYS_none */
@@ -52,6 +53,7 @@ scret_t(*g_sctab[])(struct syscall_args *) = {
sys_access, /* SYS_access */
sys_lseek, /* SYS_lseek */
sys_sleep, /* SYS_sleep */
+ sys_inject, /* SYS_inject */
};
const size_t MAX_SYSCALLS = NELEM(g_sctab);