aboutsummaryrefslogtreecommitdiff
path: root/common/uapi
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2022-10-14 15:33:00 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2022-10-14 15:33:00 +0300
commit08619630e9c7b638354323b443937701811b11d4 (patch)
tree28d1d290166eccffbe70dfffaa68ce845c842c77 /common/uapi
parent0bd3518117ad29ffc91c7967068abc9948cc4885 (diff)
downloadkmi-08619630e9c7b638354323b443937701811b11d4.tar.gz
kmi-08619630e9c7b638354323b443937701811b11d4.zip
add spawn syscall
+ Prefer over unixy fork/exec for speed since I don't want to support cow. Shell redirection should be done with env server and cooperating libc.
Diffstat (limited to 'common/uapi')
-rw-r--r--common/uapi/dispatch.c1
-rw-r--r--common/uapi/proc.c12
2 files changed, 13 insertions, 0 deletions
diff --git a/common/uapi/dispatch.c b/common/uapi/dispatch.c
index f2a12d6..db15b62 100644
--- a/common/uapi/dispatch.c
+++ b/common/uapi/dispatch.c
@@ -42,6 +42,7 @@ static const sys_t syscall_table[] = {
[SYS_CREATE] = sys_create,
[SYS_FORK] = sys_fork,
[SYS_EXEC] = sys_exec,
+ [SYS_SPAWN] = sys_spawn,
[SYS_SWAP] = sys_swap,
[SYS_ASSIGN] = sys_assign,
diff --git a/common/uapi/proc.c b/common/uapi/proc.c
index c8078db..d1d2bd7 100644
--- a/common/uapi/proc.c
+++ b/common/uapi/proc.c
@@ -83,6 +83,18 @@ SYSCALL_DEFINE2(exec)(sys_arg_t bin, sys_arg_t interp){
}
/**
+ * Spawn syscall handler.
+ *
+ * @param bin Binary to execute.
+ * @param interp Optional interpreter binary.
+ * @return \see prepare_proc() and 0.
+ */
+SYSCALL_DEFINE2(spawn)(sys_arg_t bin, sys_arg_t interp)
+{
+ /* @todo implement */
+}
+
+/**
* Kill syscall handler.
*
* @param tid Thread to kill.