summaryrefslogtreecommitdiff
path: root/kc/entry_x86_64.S
diff options
context:
space:
mode:
Diffstat (limited to 'kc/entry_x86_64.S')
-rw-r--r--kc/entry_x86_64.S27
1 files changed, 19 insertions, 8 deletions
diff --git a/kc/entry_x86_64.S b/kc/entry_x86_64.S
index abea8ac..8431044 100644
--- a/kc/entry_x86_64.S
+++ b/kc/entry_x86_64.S
@@ -1,19 +1,30 @@
+#include <kc.h>
+
.section .text.start
-.extern kc_reloc
-.extern kc_main
-.extern _DYNAMIC
-.extern kc_image_base
.hidden kc_entry
.global kc_entry
.type kc_entry, @function
kc_entry:
push %rdi
- lea _DYNAMIC(%rip), %rdi
- lea kc_image_base(%rip), %rsi
- call kc_reloc
+ push %rsi
+ lea kc_image_base(%rip), %rdi
+ lea _DYNAMIC(%rip), %rsi
+ call kc_dynamic_init
+ pop %rsi
pop %rdi
call kc_main
ret
.size kc_entry, . - kc_entry
-
+
+.section .text
+
+.hidden kc_resolve_symbol
+.global kc_resolve_symbol
+.type kc_resolve_symbol, @function
+kc_resolve_symbol:
+ cli
+ hlt
+ jmp kc_resolve_symbol
+.size kc_resolve_symbol, . - kc_resolve_symbol
+