diff options
author | dzwdz | 2022-10-18 18:41:22 +0200 |
---|---|---|
committer | dzwdz | 2022-10-18 23:01:28 +0200 |
commit | 753d43d349bfde6b83cff650c9354c4a0442a3ae (patch) | |
tree | 1bb20c6f37c57bb957c9f96bc13eafc6a1f54f72 /src/user/lib/_start2.c | |
parent | 6bb22b0a144646788f8c14bce1bde147693da780 (diff) |
user/libc: rework exec(), use a C _start2
Diffstat (limited to 'src/user/lib/_start2.c')
-rw-r--r-- | src/user/lib/_start2.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/user/lib/_start2.c b/src/user/lib/_start2.c new file mode 100644 index 0000000..6d1431f --- /dev/null +++ b/src/user/lib/_start2.c @@ -0,0 +1,13 @@ +#include <camellia/syscalls.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <user/lib/elfload.h> + +int main(int argc, char **argv, char **envp); + +_Noreturn void _start2(struct execdata *ed) { + elf_selfreloc(); + __setinitialcwd(ed->cwd); + exit(main(ed->argc, ed->argv, ed->envp)); +} |