summaryrefslogtreecommitdiff
path: root/src/sys/os/os_proc.c
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-10-05 19:18:14 -0400
committerIan Moffett <ian@osmora.org>2025-10-05 19:20:18 -0400
commitff859b8e0c72910aa1b7635c839642fcfb9c1c8a (patch)
tree36a4bb91c3b21960a56a3438cad0630a65042a51 /src/sys/os/os_proc.c
parent25bac8d254d55b8f752f8e605cb707475281b6a1 (diff)
kern: syscall: Add initial SYS_spawn syscall
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/os/os_proc.c')
-rw-r--r--src/sys/os/os_proc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/sys/os/os_proc.c b/src/sys/os/os_proc.c
index e32e59c..14f8ceb 100644
--- a/src/sys/os/os_proc.c
+++ b/src/sys/os/os_proc.c
@@ -212,3 +212,18 @@ proc_spawn(const char *path, struct penv_blk *envbp)
sched_enq(&core->scq, proc);
return proc->pid;
}
+
+scret_t
+sys_spawn(struct syscall_args *scargs)
+{
+ const char *u_path = SCARG(scargs, const char *, 0);
+ char buf[PATH_MAX];
+ int error;
+
+ error = copyinstr(u_path, buf, sizeof(buf));
+ if (error < 0) {
+ return error;
+ }
+
+ return proc_spawn(buf, NULL);
+}