summaryrefslogtreecommitdiff
path: root/src/user/lib/elfload.s
blob: faab85f11fef89e9a14b4baa6fc6aa28cf333fbe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.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 $100, %rdi
	syscall
	jmp 0 // if execbuf failed we might as well crash