X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/13a19dccebb7df5b78d984ce26f8f3225dd5130a..b632f535c4a6882bdca0317fb88cbe6e165f24eb:/lunaix-os/kernel/exe/elf32/elf32bfmt.c diff --git a/lunaix-os/kernel/exe/elf32/elf32bfmt.c b/lunaix-os/kernel/exe/elf32/elf32bfmt.c index 451c394..8d28143 100644 --- a/lunaix-os/kernel/exe/elf32/elf32bfmt.c +++ b/lunaix-os/kernel/exe/elf32/elf32bfmt.c @@ -164,12 +164,19 @@ elf32_read_phdr(struct elf32* elf) } int -elf32_check_exec(const struct elf32* elf) +elf32_check_exec(const struct elf32* elf, int type) +{ + const struct elf32_ehdr* ehdr = &elf->eheader; + + return (ehdr->e_entry) && ehdr->e_type == type; +} + +int +elf32_check_arch(const struct elf32* elf) { const struct elf32_ehdr* ehdr = &elf->eheader; return *(u32_t*)(ehdr->e_ident) == ELFMAGIC && ehdr->e_ident[EI_CLASS] == ELFCLASS32 && - ehdr->e_ident[EI_DATA] == ELFDATA2LSB && ehdr->e_type == ET_EXEC && - ehdr->e_machine == EM_386; -} + ehdr->e_ident[EI_DATA] == ELFDATA2LSB && ehdr->e_machine == EM_386; +} \ No newline at end of file