5 Copyright (C) 2006 The AROS Development Team. All rights reserved.
22 #define SHN_ABS 0xfff1
23 #define SHN_COMMON 0xfff2
26 #define SHF_WRITE (1 << 0)
27 #define SHF_ALLOC (1 << 1)
28 #define SHF_EXECINSTR (1 << 2)
30 #define R_X86_64_NONE 0
32 #define R_X86_64_PC32 2
33 #define R_X86_64_32 10
34 #define R_X86_64_32S 11
36 #define ELF64_ST_TYPE(i) ((i) & 0x0F)
38 #define ELF64_R_SYM(i) (unsigned long)((i) >> 32)
39 #define ELF64_R_TYPE(i) (unsigned long)((i) & 0xffffffffULL)
40 #define ELF64_R_INFO(sym, type) (((unsigned long long)(sym) << 32) + (type))
43 unsigned char ident
[16];
45 unsigned short machine
;
47 unsigned long long entry
;
48 unsigned long long phoff
;
49 unsigned long long shoff
;
51 unsigned short ehsize
;
52 unsigned short phentsize
;
54 unsigned short shentsize
;
56 unsigned short shstrndx
;
62 unsigned long long flags
;
63 unsigned long long addr
;
64 unsigned long long offset
;
65 unsigned long long size
;
68 unsigned long long addralign
;
69 unsigned long long entsize
;
76 unsigned short shindex
;
77 unsigned long long value
;
78 unsigned long long size
;
82 unsigned long long offset
;
83 unsigned long long info
;
84 signed long long addend
;
87 void load_elf_file(void *, unsigned long long);
88 void *kernel_lowest();
89 void *kernel_highest();
90 void set_base_address(void *, void *);
92 #endif /*ELFLOADER_H_*/