clean-up left-over arch-depend code from kernel base
[lunaix-os.git] / lunaix-os / arch / generic / includes / sys-generic / elf.h
1 #ifndef __LUNAIX_ARCH_GENERIC_ELF_H
2 #define __LUNAIX_ARCH_GENERIC_ELF_H
3
4 #include <lunaix/types.h>
5
6 #define ELFCLASS32 1
7 #define ELFCLASS64 2
8
9 #define ELFDATA2LSB 1
10 #define ELFDATA2MSB 2
11
12 #ifdef CONFIG_ARCH_BITS_64
13 typedef unsigned long   elf_ptr_t;
14 typedef unsigned short  elf_hlf_t;
15 typedef unsigned long   elf_off_t;
16 typedef          int    elf_swd_t;
17 typedef unsigned int    elf_wrd_t;
18 typedef unsigned long   elf_xwrd_t;
19 typedef          long   elf_sxwrd_t;
20 #else
21 typedef unsigned int    elf_ptr_t;
22 typedef unsigned short  elf_hlf_t;
23 typedef unsigned int    elf_off_t;
24 typedef unsigned int    elf_swd_t;
25 typedef unsigned int    elf_wrd_t;
26 #endif
27
28 struct elf_ehdr
29 {
30     u8_t e_ident[16];
31     elf_hlf_t e_type;
32     elf_hlf_t e_machine;
33     elf_wrd_t e_version;
34     elf_ptr_t e_entry;
35     elf_off_t e_phoff;
36     elf_off_t e_shoff;
37     elf_wrd_t e_flags;
38     elf_hlf_t e_ehsize;
39     elf_hlf_t e_phentsize;
40     elf_hlf_t e_phnum;
41     elf_hlf_t e_shentsize;
42     elf_hlf_t e_shnum;
43     elf_hlf_t e_shstrndx;
44 };
45
46 struct elf_phdr
47 {
48 #ifdef CONFIG_ARCH_BITS_64
49     elf_wrd_t p_type;
50     elf_wrd_t p_flags;
51     elf_off_t p_offset;
52     elf_ptr_t p_va;
53     elf_ptr_t p_pa;
54     elf_xwrd_t p_filesz;
55     elf_xwrd_t p_memsz;
56     elf_xwrd_t p_align;
57 #else
58     elf_wrd_t p_type;
59     elf_off_t p_offset;
60     elf_ptr_t p_va;
61     elf_ptr_t p_pa;
62     elf_wrd_t p_filesz;
63     elf_wrd_t p_memsz;
64     elf_wrd_t p_flags;
65     elf_wrd_t p_align;
66 #endif
67 };
68
69 #endif /* __LUNAIX_ARCH_GENERIC_ELF_H */