summaryrefslogtreecommitdiff
path: root/utils/imxtools/sbtools/elf.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/imxtools/sbtools/elf.c')
-rw-r--r--utils/imxtools/sbtools/elf.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/utils/imxtools/sbtools/elf.c b/utils/imxtools/sbtools/elf.c
index 226057bc19..a0b249570a 100644
--- a/utils/imxtools/sbtools/elf.c
+++ b/utils/imxtools/sbtools/elf.c
@@ -551,6 +551,19 @@ void elf_write_file(struct elf_params_t *params, elf_write_fn_t write,
551 free(strtbl_content); 551 free(strtbl_content);
552} 552}
553 553
554bool elf_guess(elf_read_fn_t read, void *user)
555{
556 /* read header */
557 Elf32_Ehdr ehdr;
558 if(!read(user, 0, &ehdr, sizeof(ehdr)))
559 return false;
560 /* basic checks */
561 return ehdr.e_ident[EI_MAG0] == ELFMAG0 && ehdr.e_ident[EI_MAG1] == ELFMAG1 &&
562 ehdr.e_ident[EI_MAG2] == ELFMAG2 && ehdr.e_ident[EI_MAG3] == ELFMAG3 &&
563 ehdr.e_ehsize == sizeof(ehdr) && ehdr.e_phentsize == sizeof(Elf32_Phdr) &&
564 ehdr.e_shentsize == sizeof(Elf32_Shdr);
565}
566
554bool elf_read_file(struct elf_params_t *params, elf_read_fn_t read, 567bool elf_read_file(struct elf_params_t *params, elf_read_fn_t read,
555 elf_printf_fn_t printf, void *user) 568 elf_printf_fn_t printf, void *user)
556{ 569{