Lines Matching refs:phdr

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()
207 static int elf_program_header_convert(const Elf_Ehdr *ehdr, Elf_Phdr *phdr) in elf_program_header_convert() argument
534 Elf_Phdr *phdr, *php; local
628 if ((ehdr->e_phoff + ehdr->e_phnum * sizeof(*phdr)) > ef->firstlen) {
633 phdr = (Elf_Phdr *)(ef->firstpage + ehdr->e_phoff);
636 if (elf_program_header_convert(ehdr, phdr))
640 if (phdr[i].p_type != PT_LOAD)
645 (long)phdr[i].p_filesz, (long)phdr[i].p_offset,
646 (long)(phdr[i].p_vaddr + off),
647 (long)(phdr[i].p_vaddr + off + phdr[i].p_memsz - 1));
649 if ((phdr[i].p_flags & PF_W) == 0) {
650 printf("text=0x%lx ", (long)phdr[i].p_filesz);
652 printf("data=0x%lx", (long)phdr[i].p_filesz);
653 if (phdr[i].p_filesz < phdr[i].p_memsz)
654 printf("+0x%lx", (long)(phdr[i].p_memsz -
655 phdr[i].p_filesz));
660 if (ef->firstlen > phdr[i].p_offset) {
661 fpcopy = ef->firstlen - phdr[i].p_offset;
662 archsw.arch_copyin(ef->firstpage + phdr[i].p_offset,
663 phdr[i].p_vaddr + off, fpcopy);
665 if (phdr[i].p_filesz > fpcopy) {
667 phdr[i].p_vaddr + off + fpcopy,
668 phdr[i].p_filesz - fpcopy,
669 phdr[i].p_offset + fpcopy) != 0) {
676 if (phdr[i].p_filesz < phdr[i].p_memsz) {
679 (long)(phdr[i].p_vaddr + off + phdr[i].p_filesz),
680 (long)(phdr[i].p_vaddr + off + phdr[i].p_memsz -1));
682 kern_bzero(phdr[i].p_vaddr + off + phdr[i].p_filesz,
683 phdr[i].p_memsz - phdr[i].p_filesz);
689 archsw.arch_loadseg(ehdr, phdr + i, off);
691 if (firstaddr == 0 || firstaddr > (phdr[i].p_vaddr + off))
692 firstaddr = phdr[i].p_vaddr + off;
694 (phdr[i].p_vaddr + off + phdr[i].p_memsz))
695 lastaddr = phdr[i].p_vaddr + off + phdr[i].p_memsz;
756 if (phdr[j].p_type != PT_LOAD)
758 if (shdr[i].sh_offset >= phdr[j].p_offset &&
760 phdr[j].p_offset + phdr[j].p_filesz)) {
849 if (phdr[i].p_type == PT_DYNAMIC) {
850 php = phdr + i;