summaryrefslogtreecommitdiff
path: root/kc/entry_x86_64.S
diff options
context:
space:
mode:
authorAda Christine <adachristine18@gmail.com>2022-03-15 16:29:24 +0000
committerAda Christine <adachristine18@gmail.com>2022-03-15 16:29:24 +0000
commitec4aee35de3446713c6754641cdad82adc011204 (patch)
treefb40b7b153da4bbb47ec46b40144a18fbfbcf74b /kc/entry_x86_64.S
parent97fcd7d1fc4574753d91e6767a8d8a7653a7f7fe (diff)
infrastructure for dynamic symbol resolution
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
+