From ec4aee35de3446713c6754641cdad82adc011204 Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Tue, 15 Mar 2022 16:29:24 +0000 Subject: infrastructure for dynamic symbol resolution --- kc/api/kc.h | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'kc/api') diff --git a/kc/api/kc.h b/kc/api/kc.h index b4a6682..2e3b43c 100644 --- a/kc/api/kc.h +++ b/kc/api/kc.h @@ -1,5 +1,13 @@ #pragma once +#ifndef __ASSEMBLER__ + +#include + +#include + +#define KC_EXPORT __attribute__((visibility("default"))) + extern unsigned char kc_image_base; extern unsigned char kc_text_begin; extern unsigned char kc_text_end; @@ -8,5 +16,28 @@ extern unsigned char kc_data_begin; extern unsigned char kc_data_end; extern unsigned char kc_image_end; -#define KC_EXPORT __attribute__((visibility("default"))) +extern void kc_dynamic_init(void *base, Elf64_Dyn *dyn); +extern void kc_reloc( + void *base, + Elf64_Rela *entries, + size_t size, + size_t entsize); + +extern void kc_resolve_symbol(void); + +#else + +.extern kc_image_base +.extern kc_text_begin +.extern kc_text_end +.extern kc_rodata_begin +.extern kc_rodata_end +.extern kc_data_begin +.extern kc_data_end +.extern kc_image_end +.extern _DYNAMIC + +.extern kc_dynamic_init + +#endif // __ASSEMBLER__ -- cgit v1.3.1-1-g115d