Lines Matching defs:ehdr
53 Elf_Ehdr *ehdr;
127 static int elf_header_convert(Elf_Ehdr *ehdr)
153 CONVERT_SWITCH(ehdr, ehdr, HEADER_FIELDS);
160 static int elf_program_header_convert(const Elf_Ehdr *ehdr, Elf_Phdr *phdr)
172 CONVERT_SWITCH(ehdr, phdr, PROGRAM_HEADER_FIELDS);
179 static int elf_section_header_convert(const Elf_Ehdr *ehdr, Elf_Shdr *shdr)
193 CONVERT_SWITCH(ehdr, shdr, SECTION_HEADER_FIELDS);
202 static int elf_header_convert(Elf_Ehdr *ehdr)
207 static int elf_program_header_convert(const Elf_Ehdr *ehdr, Elf_Phdr *phdr)
212 static int elf_section_header_convert(const Elf_Ehdr *ehdr, Elf_Shdr *shdr)
269 Elf_Ehdr *ehdr;
304 ehdr = ef->ehdr = (Elf_Ehdr *)ef->firstpage;
307 if (!IS_ELF(*ehdr)) {
312 if (ehdr->e_ident[EI_CLASS] != ELF_TARG_CLASS || /* Layout ? */
313 ehdr->e_ident[EI_DATA] != ELF_TARG_DATA ||
314 ehdr->e_ident[EI_VERSION] != EV_CURRENT) /* Version ? */ {
319 err = elf_header_convert(ehdr);
323 if (ehdr->e_version != EV_CURRENT || ehdr->e_machine != ELF_TARG_MACH) {
369 Elf_Ehdr *ehdr;
380 ehdr = ef.ehdr;
394 if (ef.kernel || ehdr->e_type == ET_EXEC) {
411 if (ehdr->e_type == ET_EXEC)
412 dest = (ehdr->e_entry & ~PAGE_MASK);
414 if ((ehdr->e_entry & ~PAGE_MASK) == 0) {
422 } else if (ehdr->e_type == ET_DYN) {
452 dest = archsw.arch_loadaddr(LOAD_ELF, ehdr, dest);
478 (uintmax_t)ehdr->e_entry);
487 file_addmetadata(fp, MODINFOMD_ELFHDR, sizeof(*ehdr), ehdr);
525 * With the file (fd) open on the image, and (ehdr) containing
533 Elf_Ehdr *ehdr;
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;
617 printf("ehdr->e_entry 0x%jx, va<->pa off %llx\n",
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++) {