summaryrefslogtreecommitdiff
path: root/service/kc.h
blob: ff3a1ca4902f1e09f750346f90f381e39925ea76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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__