aboutsummaryrefslogtreecommitdiff
path: root/02_process_init/entry.c
diff options
context:
space:
mode:
authorjohannst <johannes.stoelp@gmail.com>2020-11-24 23:46:17 +0100
committerjohannst <johannes.stoelp@gmail.com>2020-11-24 23:46:17 +0100
commit9e90abfdb0b1b1f270b4ae0e4f5d8742d1f2f472 (patch)
treeeaf508a17c3d54206f39f6275642bd53db70680f /02_process_init/entry.c
parent046fdcf0d37359c04735c0189b350757e893723c (diff)
downloaddynld-9e90abfdb0b1b1f270b4ae0e4f5d8742d1f2f472.tar.gz
dynld-9e90abfdb0b1b1f270b4ae0e4f5d8742d1f2f472.zip
factorize printf into io.h
Diffstat (limited to '02_process_init/entry.c')
-rw-r--r--02_process_init/entry.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/02_process_init/entry.c b/02_process_init/entry.c
index a6b0918..360d205 100644
--- a/02_process_init/entry.c
+++ b/02_process_init/entry.c
@@ -1,26 +1,14 @@
// Copyright (c) 2020 Johannes Stoelp
-#include <asm/unistd.h>
#include <elf.h>
-#include <fmt.h>
-#include <stdint.h>
-#include <syscall.h>
+#define MAX_PRINTF_LEN 128
+#include <io.h>
#if !defined(__linux__) || !defined(__x86_64__)
# error "Only supported in linux(x86_64)!"
#endif
-int dynld_printf(const char* fmt, ...) {
- va_list ap;
- va_start(ap, fmt);
- char buf[64];
- int ret = dynld_vsnprintf(buf, sizeof(buf), fmt, ap);
- va_end(ap);
- syscall3(__NR_write, 1 /* stdout */, buf, ret);
- return ret;
-}
-
-void entry(long* prctx) {
+void entry(const long* prctx) {
// Interpret data on the stack passed by the OS kernel as specified in the
// x86_64 SysV ABI.