Lines Matching refs:ehdr
53 Elf_Ehdr *ehdr; member
127 static int elf_header_convert(Elf_Ehdr *ehdr) in elf_header_convert() argument
153 CONVERT_SWITCH(ehdr, ehdr, HEADER_FIELDS); in elf_header_convert()
160 static int elf_program_header_convert(const Elf_Ehdr *ehdr, Elf_Phdr *phdr) in elf_program_header_convert() argument
172 CONVERT_SWITCH(ehdr, phdr, PROGRAM_HEADER_FIELDS); in elf_program_header_convert()
179 static int elf_section_header_convert(const Elf_Ehdr *ehdr, Elf_Shdr *shdr) in elf_section_header_convert() argument
193 CONVERT_SWITCH(ehdr, shdr, SECTION_HEADER_FIELDS); in elf_section_header_convert()
202 static int elf_header_convert(Elf_Ehdr *ehdr) in elf_header_convert() argument
207 static int elf_program_header_convert(const Elf_Ehdr *ehdr, Elf_Phdr *phdr) in elf_program_header_convert() argument
212 static int elf_section_header_convert(const Elf_Ehdr *ehdr, Elf_Shdr *shdr) in elf_section_header_convert() argument
269 Elf_Ehdr *ehdr; in __elfN() local
304 ehdr = ef->ehdr = (Elf_Ehdr *)ef->firstpage; in __elfN()
307 if (!IS_ELF(*ehdr)) { in __elfN()
312 if (ehdr->e_ident[EI_CLASS] != ELF_TARG_CLASS || /* Layout ? */ in __elfN()
313 ehdr->e_ident[EI_DATA] != ELF_TARG_DATA || in __elfN()
314 ehdr->e_ident[EI_VERSION] != EV_CURRENT) /* Version ? */ { in __elfN()
319 err = elf_header_convert(ehdr); in __elfN()
323 if (ehdr->e_version != EV_CURRENT || ehdr->e_machine != ELF_TARG_MACH) { in __elfN()
369 Elf_Ehdr *ehdr; in __elfN() local
380 ehdr = ef.ehdr; in __elfN()
394 if (ef.kernel || ehdr->e_type == ET_EXEC) { in __elfN()
411 if (ehdr->e_type == ET_EXEC) in __elfN()
412 dest = (ehdr->e_entry & ~PAGE_MASK); in __elfN()
414 if ((ehdr->e_entry & ~PAGE_MASK) == 0) { in __elfN()
422 } else if (ehdr->e_type == ET_DYN) { in __elfN()
452 dest = archsw.arch_loadaddr(LOAD_ELF, ehdr, dest); in __elfN()
478 (uintmax_t)ehdr->e_entry); in __elfN()
487 file_addmetadata(fp, MODINFOMD_ELFHDR, sizeof(*ehdr), ehdr); in __elfN()
533 Elf_Ehdr *ehdr; local
558 ehdr = ef->ehdr;
562 if (ehdr->e_type == ET_EXEC) {
590 ehdr->e_entry += off;
593 (uintmax_t)ehdr->e_entry);
614 off -= ehdr->e_entry & ~PAGE_MASK;
615 ehdr->e_entry += off;
618 (uintmax_t)ehdr->e_entry, off);
628 if ((ehdr->e_phoff + ehdr->e_phnum * sizeof(*phdr)) > ef->firstlen) {
633 phdr = (Elf_Phdr *)(ef->firstpage + ehdr->e_phoff);
635 for (i = 0; i < ehdr->e_phnum; i++) {
636 if (elf_program_header_convert(ehdr, phdr))
689 archsw.arch_loadseg(ehdr, phdr + i, off);
706 chunk = (size_t)ehdr->e_shnum * (size_t)ehdr->e_shentsize;
707 if (chunk == 0 || ehdr->e_shoff == 0)
709 shdr = alloc_pread(VECTX_HANDLE(ef), ehdr->e_shoff, chunk);
716 for (i = 0; i < ehdr->e_shnum; i++)
717 elf_section_header_convert(ehdr, &shdr[i]);
726 chunk = shdr[ehdr->e_shstrndx].sh_size;
729 shdr[ehdr->e_shstrndx].sh_offset, chunk);
731 for (i = 0; i < ehdr->e_shnum; i++) {
752 for (i = 0; i < ehdr->e_shnum; i++) {
755 for (j = 0; j < ehdr->e_phnum; j++) {
848 for (i = 0; i < ehdr->e_phnum; i++) {
1006 if (ef.kernel == 1 || ef.ehdr->e_type == ET_EXEC) {
1008 } else if (ef.ehdr->e_type != ET_DYN) {
1013 size = (size_t)ef.ehdr->e_shnum * (size_t)ef.ehdr->e_shentsize;
1014 shdr = alloc_pread(VECTX_HANDLE(&ef), ef.ehdr->e_shoff, size);
1021 shstrtab = alloc_pread(VECTX_HANDLE(&ef), shdr[ef.ehdr->e_shstrndx].sh_offset,
1022 shdr[ef.ehdr->e_shstrndx].sh_size);
1032 for (i = 0, j = 0; i < ef.ehdr->e_shnum; i++) {