Lines Matching refs:ph
617 Phdr *ph = dso->phdr;
620 for (; phcnt--; ph=(void *)((char *)ph+dso->phentsize)) {
621 if (ph->p_type!=PT_LOAD) continue;
622 if ((ph->p_flags&(PF_R|PF_W))!=(PF_R|PF_W)) continue;
623 reclaim(dso, ph->p_vaddr & -PAGE_SIZE, ph->p_vaddr);
624 reclaim(dso, ph->p_vaddr+ph->p_memsz,
625 ph->p_vaddr+ph->p_memsz+PAGE_SIZE-1 & -PAGE_SIZE);
698 Phdr *ph, *ph0;
717 ph = ph0 = allocated_buf;
722 ph = ph0 = (void *)(buf + 1);
724 ph = ph0 = (void *)((char *)buf + eh->e_phoff);
726 for (i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) {
727 if (ph->p_type == PT_DYNAMIC) {
728 dyn = ph->p_vaddr;
729 } else if (ph->p_type == PT_TLS) {
730 tls_image = ph->p_vaddr;
731 dso->tls.align = ph->p_align;
732 dso->tls.len = ph->p_filesz;
733 dso->tls.size = ph->p_memsz;
734 } else if (ph->p_type == PT_GNU_RELRO) {
735 dso->relro_start = ph->p_vaddr & -PAGE_SIZE;
736 dso->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE;
737 } else if (ph->p_type == PT_GNU_STACK) {
738 if (!runtime && ph->p_memsz > __default_stacksize) {
740 ph->p_memsz < DEFAULT_STACK_MAX ?
741 ph->p_memsz : DEFAULT_STACK_MAX;
744 if (ph->p_type != PT_LOAD) continue;
746 if (ph->p_vaddr < addr_min) {
747 addr_min = ph->p_vaddr;
748 off_start = ph->p_offset;
749 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
750 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
751 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
753 if (ph->p_vaddr+ph->p_memsz > addr_max) {
754 addr_max = ph->p_vaddr+ph->p_memsz;
763 for (ph=ph0, i=0; i<nsegs; ph=(void *)((char *)ph+eh->e_phentsize)) {
764 if (ph->p_type != PT_LOAD) continue;
765 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
766 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
767 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
768 map = mmap(0, ph->p_memsz + (ph->p_vaddr & PAGE_SIZE-1),
770 fd, ph->p_offset & -PAGE_SIZE);
776 (ph->p_vaddr & PAGE_SIZE-1);
777 dso->loadmap->segs[i].p_vaddr = ph->p_vaddr;
778 dso->loadmap->segs[i].p_memsz = ph->p_memsz;
781 size_t brk = (ph->p_vaddr & PAGE_SIZE-1)
782 + ph->p_filesz;
784 size_t pgend = brk + ph->p_memsz - ph->p_filesz
824 for (ph=ph0, i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) {
825 if (ph->p_type != PT_LOAD) continue;
828 if (!dso->phdr && eh->e_phoff >= ph->p_offset
829 && eh->e_phoff+phsize <= ph->p_offset+ph->p_filesz) {
830 dso->phdr = (void *)(base + ph->p_vaddr
831 + (eh->e_phoff-ph->p_offset));
835 this_min = ph->p_vaddr & -PAGE_SIZE;
836 this_max = ph->p_vaddr+ph->p_memsz+PAGE_SIZE-1 & -PAGE_SIZE;
837 off_start = ph->p_offset & -PAGE_SIZE;
838 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
839 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
840 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
842 if ((ph->p_flags & PF_R) && (ph->p_flags & PF_X) && (!(ph->p_flags & PF_W))) {
843 Phdr *next_ph = ph;
858 if ((ph->p_vaddr & -PAGE_SIZE) != addr_min || DL_NOMMU_SUPPORT)
861 if (ph->p_memsz > ph->p_filesz && (ph->p_flags&PF_W)) {
862 size_t brk = (size_t)base+ph->p_vaddr+ph->p_filesz;
1484 Phdr *ph = p->phdr;
1485 for (cnt = p->phnum; cnt--; ph = (void *)((char *)ph + p->phentsize)) {
1486 if (ph->p_type == PT_DYNAMIC) {
1487 p->dynv = laddr(p, ph->p_vaddr);
1488 } else if (ph->p_type == PT_GNU_RELRO) {
1489 p->relro_start = ph->p_vaddr & -PAGE_SIZE;
1490 p->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE;
1491 } else if (ph->p_type == PT_GNU_STACK) {
1492 if (!runtime && ph->p_memsz > __default_stacksize) {
1494 ph->p_memsz < DEFAULT_STACK_MAX ?
1495 ph->p_memsz : DEFAULT_STACK_MAX;
1498 if (ph->p_type != PT_LOAD) continue;
1499 if (ph->p_vaddr < min_addr)
1500 min_addr = ph->p_vaddr;
1501 if (ph->p_vaddr+ph->p_memsz > max_addr)
1502 max_addr = ph->p_vaddr+ph->p_memsz;
2320 Phdr *ph = p->phdr;
2324 for (; phcnt--; ph=(void *)((char *)ph+entsz)) {
2325 if (ph->p_type != PT_LOAD) continue;
2326 if (a-base-ph->p_vaddr < ph->p_memsz)