X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/32b9a6d76790c73d3d2d36d9081a2581cc65d184..28c176b668c841a3b7fb093faccf0efa39257603:/lunaix-os/arch/x86/includes/sys/exebi/elf.h?ds=inline diff --git a/lunaix-os/arch/x86/includes/sys/exebi/elf.h b/lunaix-os/arch/x86/includes/sys/exebi/elf.h new file mode 100644 index 0000000..1ccf84a --- /dev/null +++ b/lunaix-os/arch/x86/includes/sys/exebi/elf.h @@ -0,0 +1,69 @@ +#ifndef __LUNAIX_ARCH_ELF_H +#define __LUNAIX_ARCH_ELF_H + +#include + +#define ELFCLASS32 1 +#define ELFCLASS64 2 + +#define ELFDATA2LSB 1 +#define ELFDATA2MSB 2 + +#ifdef CONFIG_ARCH_X86_64 +typedef unsigned long elf_ptr_t; +typedef unsigned short elf_hlf_t; +typedef unsigned long elf_off_t; +typedef int elf_swd_t; +typedef unsigned int elf_wrd_t; +typedef unsigned long elf_xwrd_t; +typedef long elf_sxwrd_t; +#else +typedef unsigned int elf_ptr_t; +typedef unsigned short elf_hlf_t; +typedef unsigned int elf_off_t; +typedef unsigned int elf_swd_t; +typedef unsigned int elf_wrd_t; +#endif + +struct elf_ehdr +{ + u8_t e_ident[16]; + elf_hlf_t e_type; + elf_hlf_t e_machine; + elf_wrd_t e_version; + elf_ptr_t e_entry; + elf_off_t e_phoff; + elf_off_t e_shoff; + elf_wrd_t e_flags; + elf_hlf_t e_ehsize; + elf_hlf_t e_phentsize; + elf_hlf_t e_phnum; + elf_hlf_t e_shentsize; + elf_hlf_t e_shnum; + elf_hlf_t e_shstrndx; +}; + +struct elf_phdr +{ +#ifdef CONFIG_ARCH_X86_64 + elf_wrd_t p_type; + elf_wrd_t p_flags; + elf_off_t p_offset; + elf_ptr_t p_va; + elf_ptr_t p_pa; + elf_xwrd_t p_filesz; + elf_xwrd_t p_memsz; + elf_xwrd_t p_align; +#else + elf_wrd_t p_type; + elf_off_t p_offset; + elf_ptr_t p_va; + elf_ptr_t p_pa; + elf_wrd_t p_filesz; + elf_wrd_t p_memsz; + elf_wrd_t p_flags; + elf_wrd_t p_align; +#endif +}; + +#endif /* __LUNAIX_ARCH_ELF_H */