diff options
| author | Ada Christine <adachristine18@gmail.com> | 2024-02-22 20:05:51 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2024-02-22 20:05:51 +0000 |
| commit | aec58be40927ec0b2a0e6742396f880d52ce38b5 (patch) | |
| tree | 5336b9966808a6d0706e7469d239d1dbc11cb3e2 /kjarna_runtime/kc.h | |
| parent | e97aa65fc42f08fe666a9a21b69d05ab17231920 (diff) | |
kjarna runtime
Diffstat (limited to 'kjarna_runtime/kc.h')
| -rw-r--r-- | kjarna_runtime/kc.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kjarna_runtime/kc.h b/kjarna_runtime/kc.h new file mode 100644 index 0000000..842d7be --- /dev/null +++ b/kjarna_runtime/kc.h @@ -0,0 +1,45 @@ +#pragma once + +#ifndef __ASSEMBLER__ + +#include <elf/elf64.h> + +#include <stddef.h> + +#include <kjarna/interface.h> + +extern struct kjarna_entry_params *entry_params; + +#define KC_EXPORT __attribute__((visibility("default"))) + +extern unsigned char kc_image_base; +extern unsigned char kc_text_begin; +extern unsigned char kc_text_end; +extern unsigned char kc_rodata_begin; +extern unsigned char kc_data_begin; +extern unsigned char kc_data_end; +extern unsigned char kc_image_end; + +struct elf64_dso_info; + +extern void kc_dynamic_init(char *base, Elf64_Dyn *dyn); +extern void *kc_dynamic_link(struct elf64_dso_info *dso, int index); +extern void kc_reloc(void *base, Elf64_Rela *entries, size_t size, size_t entsize); + +#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 +.extern kc_dynamic_link + +#endif // __ASSEMBLER__ + |
