summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authordzwdz2022-07-18 23:55:58 +0200
committerdzwdz2022-07-18 23:55:58 +0200
commit96f41ff64d8113307f1b60d2eb6852423db34d14 (patch)
tree5a85a9706a2a11d047f7f5c91f4964bd2167b1ee /src/shared
parent121794214fd5ae36609c30418dfaf1a073b8784c (diff)
syscalls: implement execbuf
i have been planning to implement something like this for a while now. it should be faster when doing consecutive syscalls (to be tested). it will also be helpful in writing the elf loader
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/execbuf.h5
-rw-r--r--src/shared/syscalls.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/shared/execbuf.h b/src/shared/execbuf.h
new file mode 100644
index 0000000..70ea35c
--- /dev/null
+++ b/src/shared/execbuf.h
@@ -0,0 +1,5 @@
+#pragma once
+/* the instruction format is bound to change, atm it's extremely inefficient */
+
+/* takes 5 arguments */
+#define EXECBUF_SYSCALL 0xF0000001
diff --git a/src/shared/syscalls.h b/src/shared/syscalls.h
index 2b8bd14..e3b879e 100644
--- a/src/shared/syscalls.h
+++ b/src/shared/syscalls.h
@@ -28,6 +28,8 @@ enum {
_SYSCALL_MEMFLAG,
_SYSCALL_PIPE,
+ _SYSCALL_EXECBUF,
+
_SYSCALL_DEBUG_KLOG,
};
@@ -85,4 +87,7 @@ long _syscall_fs_respond(void __user *buf, long ret, int flags);
void __user *_syscall_memflag(void __user *addr, size_t len, int flags);
long _syscall_pipe(handle_t __user user_ends[2], int flags);
+/* see shared/execbuf.h */
+long _syscall_execbuf(void __user *buf, size_t len);
+
void _syscall_debug_klog(const void __user *buf, size_t len);