4 #include <lunaix/types.h>
6 typedef unsigned int elf32_ptr_t;
7 typedef unsigned short elf32_hlf_t;
8 typedef unsigned int elf32_off_t;
9 typedef unsigned int elf32_swd_t;
10 typedef unsigned int elf32_wrd_t;
26 // [0x7f, 'E', 'L', 'F']
27 #define ELFMAGIC 0x464c457fU
40 elf32_hlf_t e_machine;
41 elf32_wrd_t e_version;
47 elf32_hlf_t e_phentsize;
49 elf32_hlf_t e_shentsize;
51 elf32_hlf_t e_shstrndx;
66 #define SIZE_EHDR sizeof(struct elf32_ehdr)
67 #define SIZE_PHDR sizeof(struct elf32_phdr)
70 elf_check_exec(struct elf32_ehdr* ehdr)
72 return *(u32_t*)(ehdr->e_ident) == ELFMAGIC &&
73 ehdr->e_ident[EI_CLASS] == ELFCLASS32 &&
74 ehdr->e_ident[EI_DATA] == ELFDATA2LSB && ehdr->e_type == ET_EXEC &&
75 ehdr->e_machine == EM_386;
77 #endif /* __LUNAIX_ELF_H */