Lines Matching refs:phdr

256 	Elf32_Phdr *phdr;	/* program header */  in read_elf32()  local
314 phdr = (Elf32_Phdr *)(allphdrs + elfhdrp->e_phentsize * i); in read_elf32()
315 if (phdr->p_type != PT_NOTE) in read_elf32()
319 phdr->p_filesz); in read_elf32()
321 if ((note_buf = kmem_alloc(phdr->p_filesz, 0)) == NULL) in read_elf32()
324 dprintf("seeking to 0x%x\n", phdr->p_offset); in read_elf32()
325 if (lseek(fd, phdr->p_offset, 0) == -1) in read_elf32()
329 phdr->p_filesz, (void *)nhdr); in read_elf32()
332 if (xread(fd, (caddr_t)nhdr, phdr->p_filesz) != phdr->p_filesz) in read_elf32()
360 } while (offset < phdr->p_filesz); in read_elf32()
362 kmem_free(note_buf, phdr->p_filesz); in read_elf32()
372 phdr = (Elf32_Phdr *)(allphdrs + elfhdrp->e_phentsize * i); in read_elf32()
377 phdr->p_offset, phdr->p_vaddr); in read_elf32()
379 phdr->p_memsz, phdr->p_filesz); in read_elf32()
381 if (phdr->p_type == PT_LOAD) { in read_elf32()
383 dprintf("seeking to 0x%x\n", phdr->p_offset); in read_elf32()
384 if (lseek(fd, phdr->p_offset, 0) == -1) in read_elf32()
387 if (phdr->p_flags == (PF_R | PF_W) && in read_elf32()
388 phdr->p_vaddr == 0) { in read_elf32()
400 kmem_alloc(phdr->p_memsz, 0)) == 0) in read_elf32()
406 phdr->p_vaddr = (Elf32_Addr)loadaddr; in read_elf32()
409 printf("0x%x+", phdr->p_filesz); in read_elf32()
414 loadaddr = phdr->p_vaddr; in read_elf32()
417 size = roundup(phdr->p_memsz + off, in read_elf32()
422 size = phdr->p_memsz; in read_elf32()
428 if (phdr->p_flags & PF_W) in read_elf32()
429 dhdr = phdr; in read_elf32()
431 thdr = phdr; in read_elf32()
456 phdr->p_filesz, loadaddr); in read_elf32()
460 phdr->p_filesz) != phdr->p_filesz) in read_elf32()
464 if (phdr->p_memsz > phdr->p_filesz) { in read_elf32()
465 loadaddr += phdr->p_filesz; in read_elf32()
469 phdr->p_memsz - phdr->p_filesz); in read_elf32()
473 phdr->p_memsz - phdr->p_filesz); in read_elf32()
477 phdr->p_memsz - phdr->p_filesz); in read_elf32()
481 if (phdr->p_flags & PF_X) { in read_elf32()
483 (caddr_t)(uintptr_t)phdr->p_vaddr, in read_elf32()
484 phdr->p_memsz); in read_elf32()
486 } else if (phdr->p_type == PT_INTERP) { in read_elf32()
491 if (lseek(fd, phdr->p_offset, 0) == -1) { in read_elf32()
497 if (xread(fd, dlname, phdr->p_filesz) != in read_elf32()
498 phdr->p_filesz || in read_elf32()
499 dlname[phdr->p_filesz - 1] != '\0') in read_elf32()
501 } else if (phdr->p_type == PT_DYNAMIC) { in read_elf32()
502 dynamic = phdr->p_vaddr; in read_elf32()
610 kmem_free(nhdr, phdr->p_filesz); in read_elf32()
629 Elf64_Phdr *phdr; /* program header */ in read_elf64() local
688 phdr = (Elf64_Phdr *)(allphdrs + elfhdrp->e_phentsize * i); in read_elf64()
689 if (phdr->p_type != PT_NOTE) in read_elf64()
693 (u_longlong_t)phdr->p_filesz); in read_elf64()
695 if ((note_buf = kmem_alloc(phdr->p_filesz, 0)) == NULL) in read_elf64()
699 (u_longlong_t)phdr->p_offset); in read_elf64()
700 if (lseek(fd, phdr->p_offset, 0) == -1) in read_elf64()
704 (u_longlong_t)phdr->p_filesz, (void *)nhdr); in read_elf64()
707 if (xread(fd, (caddr_t)nhdr, phdr->p_filesz) != phdr->p_filesz) in read_elf64()
735 } while (offset < phdr->p_filesz); in read_elf64()
737 kmem_free(note_buf, phdr->p_filesz); in read_elf64()
747 phdr = (Elf64_Phdr *)(allphdrs + elfhdrp->e_phentsize * i); in read_elf64()
752 (u_longlong_t)phdr->p_offset, in read_elf64()
753 (u_longlong_t)phdr->p_vaddr); in read_elf64()
755 (u_longlong_t)phdr->p_memsz, in read_elf64()
756 (u_longlong_t)phdr->p_filesz); in read_elf64()
758 phdr->p_type, phdr->p_flags); in read_elf64()
760 if (phdr->p_type == PT_LOAD) { in read_elf64()
763 (u_longlong_t)phdr->p_offset); in read_elf64()
764 if (lseek(fd, phdr->p_offset, 0) == -1) in read_elf64()
767 if (phdr->p_flags == (PF_R | PF_W) && in read_elf64()
768 phdr->p_vaddr == 0) { in read_elf64()
780 kmem_alloc(phdr->p_memsz, 0)) == 0) in read_elf64()
787 phdr->p_vaddr = loadaddr; in read_elf64()
791 (u_longlong_t)phdr->p_filesz); in read_elf64()
796 loadaddr = phdr->p_vaddr; in read_elf64()
799 size = roundup(phdr->p_memsz + off, in read_elf64()
804 size = phdr->p_memsz; in read_elf64()
810 if (phdr->p_flags & PF_W) in read_elf64()
811 dhdr = phdr; in read_elf64()
813 thdr = phdr; in read_elf64()
839 (u_longlong_t)phdr->p_filesz, in read_elf64()
843 loadaddr, phdr->p_filesz) != phdr->p_filesz) in read_elf64()
847 if (phdr->p_memsz > phdr->p_filesz) { in read_elf64()
848 loadaddr += phdr->p_filesz; in read_elf64()
852 (u_longlong_t)(phdr->p_memsz - in read_elf64()
853 phdr->p_filesz)); in read_elf64()
857 phdr->p_memsz - phdr->p_filesz); in read_elf64()
861 (u_longlong_t)(phdr->p_memsz - in read_elf64()
862 phdr->p_filesz)); in read_elf64()
866 if (phdr->p_flags & PF_X) in read_elf64()
868 phdr->p_vaddr, phdr->p_memsz); in read_elf64()
870 } else if (phdr->p_type == PT_INTERP) { in read_elf64()
875 if (lseek(fd, phdr->p_offset, 0) == -1) { in read_elf64()
881 if (xread(fd, dlname, phdr->p_filesz) != in read_elf64()
882 phdr->p_filesz || in read_elf64()
883 dlname[phdr->p_filesz - 1] != '\0') in read_elf64()
885 } else if (phdr->p_type == PT_DYNAMIC) { in read_elf64()
886 dynamic = phdr->p_vaddr; in read_elf64()
965 kmem_free(nhdr, phdr->p_filesz); in read_elf64()