diff options
Diffstat (limited to 'service/kc.h')
| -rw-r--r-- | service/kc.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/service/kc.h b/service/kc.h new file mode 100644 index 0000000..ff3a1ca --- /dev/null +++ b/service/kc.h @@ -0,0 +1,46 @@ +#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; +struct elf64_relatab; + +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_dynamic_reloc(char *base, struct elf64_relatab *dso); + +#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__ + |
