diff options
Diffstat (limited to 'kc/entry_x86_64.S')
| -rw-r--r-- | kc/entry_x86_64.S | 27 |
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 + |
