From 96f41ff64d8113307f1b60d2eb6852423db34d14 Mon Sep 17 00:00:00 2001 From: dzwdz Date: Mon, 18 Jul 2022 23:55:58 +0200 Subject: 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 --- src/shared/execbuf.h | 5 +++++ src/shared/syscalls.h | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 src/shared/execbuf.h (limited to 'src/shared') 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); -- cgit v1.2.3