diff options
author | dzwdz | 2022-08-19 23:36:29 +0200 |
---|---|---|
committer | dzwdz | 2022-08-19 23:36:29 +0200 |
commit | 040bb34290c9a4305e13637e002060411e5a8385 (patch) | |
tree | 5bdd71a8925519d5f2e22d60a9fdd572abea2ed0 /src/user/lib/elfload.S | |
parent | 390aec5ca22e62d128e71d1dee312a2f0a82ab68 (diff) |
include: make camellia/syscalls.h compatible with assembly
Diffstat (limited to 'src/user/lib/elfload.S')
-rw-r--r-- | src/user/lib/elfload.S | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/user/lib/elfload.S b/src/user/lib/elfload.S new file mode 100644 index 0000000..0f15c06 --- /dev/null +++ b/src/user/lib/elfload.S @@ -0,0 +1,20 @@ +#define ASM_FILE 1 +#include <camellia/syscalls.h> + +.section .text +.global _freejmp_chstack +.type _freejmp_chstack, @function +// void _freejmp_chstack(void *entry, void *low, size_t len, char **argv, char **envp, void *stack); +_freejmp_chstack: + mov %r9, %rsp + jmp _freejmp + +.section .text +.global execbuf_chstack +.type execbuf_chstack, @function +// _Noreturn void execbuf_chstack(void *stack, void __user *buf, size_t len); +execbuf_chstack: + mov %rdi, %rsp + mov $_SYSCALL_EXECBUF, %rdi + syscall + hlt // if execbuf failed we might as well crash |