Lines Matching refs:ph

1290 	Phdr *ph = dso->phdr;
1293 for (; phcnt--; ph=(void *)((char *)ph+dso->phentsize)) {
1294 if (ph->p_type!=PT_LOAD) continue;
1295 if ((ph->p_flags&(PF_R|PF_W))!=(PF_R|PF_W)) continue;
1296 reclaim(dso, ph->p_vaddr & -PAGE_SIZE, ph->p_vaddr);
1297 reclaim(dso, ph->p_vaddr+ph->p_memsz,
1298 ph->p_vaddr+ph->p_memsz+PAGE_SIZE-1 & -PAGE_SIZE);
1579 Phdr *ph, *ph0;
1605 ph = ph0 = allocated_buf;
1610 ph = ph0 = (void *)(buf + 1);
1612 ph = ph0 = (void *)((char *)buf + eh->e_phoff);
1614 for (i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) {
1615 if (ph->p_type == PT_DYNAMIC) {
1616 dyn = ph->p_vaddr;
1617 } else if (ph->p_type == PT_TLS) {
1618 tls_image = ph->p_vaddr;
1619 dso->tls.align = ph->p_align;
1620 dso->tls.len = ph->p_filesz;
1621 dso->tls.size = ph->p_memsz;
1622 } else if (ph->p_type == PT_GNU_RELRO) {
1623 dso->relro_start = ph->p_vaddr & -PAGE_SIZE;
1624 dso->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE;
1625 } else if (ph->p_type == PT_GNU_STACK) {
1626 if (!runtime && ph->p_memsz > __default_stacksize) {
1628 ph->p_memsz < DEFAULT_STACK_MAX ?
1629 ph->p_memsz : DEFAULT_STACK_MAX;
1632 if (ph->p_type != PT_LOAD) continue;
1634 if (ph->p_vaddr < addr_min) {
1635 addr_min = ph->p_vaddr;
1636 off_start = ph->p_offset;
1637 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
1638 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
1639 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
1641 if (ph->p_vaddr+ph->p_memsz > addr_max) {
1642 addr_max = ph->p_vaddr+ph->p_memsz;
1651 for (ph=ph0, i=0; i<nsegs; ph=(void *)((char *)ph+eh->e_phentsize)) {
1652 if (ph->p_type != PT_LOAD) continue;
1653 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
1654 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
1655 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
1656 map = mmap(0, ph->p_memsz + (ph->p_vaddr & PAGE_SIZE-1),
1658 fd, ph->p_offset & -PAGE_SIZE);
1664 (ph->p_vaddr & PAGE_SIZE-1);
1665 dso->loadmap->segs[i].p_vaddr = ph->p_vaddr;
1666 dso->loadmap->segs[i].p_memsz = ph->p_memsz;
1669 size_t brk = (ph->p_vaddr & PAGE_SIZE-1)
1670 + ph->p_filesz;
1672 size_t pgend = brk + ph->p_memsz - ph->p_filesz
1785 for (ph=ph0, i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) {
1786 if (ph->p_type == PT_OHOS_RANDOMDATA) {
1787 fill_random_data((void *)(ph->p_vaddr + base), ph->p_memsz);
1790 if (ph->p_type != PT_LOAD) continue;
1793 if (!dso->phdr && eh->e_phoff >= ph->p_offset
1794 && eh->e_phoff+phsize <= ph->p_offset+ph->p_filesz) {
1795 dso->phdr = (void *)(base + ph->p_vaddr
1796 + (eh->e_phoff-ph->p_offset));
1800 this_min = ph->p_vaddr & -PAGE_SIZE;
1801 this_max = ph->p_vaddr+ph->p_memsz+PAGE_SIZE-1 & -PAGE_SIZE;
1802 off_start = ph->p_offset & -PAGE_SIZE;
1803 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
1804 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
1805 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
1816 if ((ph->p_flags & PF_X) && (ph->p_align == KPMD_SIZE) && hugepage_enabled)
1818 if (ph->p_memsz > ph->p_filesz && (ph->p_flags&PF_W)) {
1819 size_t brk = (size_t)base+ph->p_vaddr+ph->p_filesz;
2742 Phdr *ph = p->phdr;
2743 for (cnt = p->phnum; cnt--; ph = (void *)((char *)ph + p->phentsize)) {
2744 if (ph->p_type == PT_DYNAMIC) {
2745 p->dynv = laddr(p, ph->p_vaddr);
2746 } else if (ph->p_type == PT_GNU_RELRO) {
2747 p->relro_start = ph->p_vaddr & -PAGE_SIZE;
2748 p->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE;
2749 } else if (ph->p_type == PT_GNU_STACK) {
2750 if (!runtime && ph->p_memsz > __default_stacksize) {
2752 ph->p_memsz < DEFAULT_STACK_MAX ?
2753 ph->p_memsz : DEFAULT_STACK_MAX;
2756 if (ph->p_type != PT_LOAD) continue;
2757 if (ph->p_vaddr < min_addr)
2758 min_addr = ph->p_vaddr;
2759 if (ph->p_vaddr+ph->p_memsz > max_addr)
2760 max_addr = ph->p_vaddr+ph->p_memsz;
4105 Phdr *ph = p->phdr;
4109 for (; phcnt--; ph=(void *)((char *)ph+entsz)) {
4110 if (ph->p_type != PT_LOAD) continue;
4111 if (a-base-ph->p_vaddr < ph->p_memsz)
5072 Phdr *ph;
5107 ph = task->ph0 = task->allocated_buf;
5118 ph = task->ph0 = (void *)(task->ehdr_buf + 1);
5120 ph = task->ph0 = (void *)((char *)task->ehdr_buf + task->eh->e_phoff);
5123 for (i = task->eh->e_phnum; i; i--, ph = (void *)((char *)ph + task->eh->e_phentsize)) {
5124 if (ph->p_type == PT_DYNAMIC) {
5125 task->dyn = ph->p_vaddr;
5126 } else if (ph->p_type == PT_TLS) {
5127 task->tls_image = ph->p_vaddr;
5128 task->tls.align = ph->p_align;
5129 task->tls.len = ph->p_filesz;
5130 task->tls.size = ph->p_memsz;
5133 if (ph->p_type != PT_DYNAMIC) {
5137 off_start = ph->p_offset;
5139 task->dyn_map_len = ph->p_memsz + (ph->p_offset - off_start);
5148 task->dyn_addr = (size_t *)((unsigned char *)task->dyn_map + (ph->p_offset - off_start));
5218 Phdr *ph = task->ph0;
5227 for (i = task->eh->e_phnum; i; i--, ph = (void *)((char *)ph + task->eh->e_phentsize)) {
5228 if (ph->p_type == PT_GNU_RELRO) {
5229 task->p->relro_start = ph->p_vaddr & -PAGE_SIZE;
5230 task->p->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE;
5231 } else if (ph->p_type == PT_GNU_STACK) {
5232 if (!runtime && ph->p_memsz > __default_stacksize) {
5234 ph->p_memsz < DEFAULT_STACK_MAX ?
5235 ph->p_memsz : DEFAULT_STACK_MAX;
5238 if (ph->p_type != PT_LOAD) {
5242 if (ph->p_vaddr < addr_min) {
5243 addr_min = ph->p_vaddr;
5244 off_start = ph->p_offset;
5245 prot = (((ph->p_flags & PF_R) ? PROT_READ : 0) |
5246 ((ph->p_flags & PF_W) ? PROT_WRITE : 0) |
5247 ((ph->p_flags & PF_X) ? PROT_EXEC : 0));
5249 if (ph->p_vaddr + ph->p_memsz > addr_max) {
5250 addr_max = ph->p_vaddr + ph->p_memsz;
5264 for (ph = task->ph0, i = 0; i < nsegs; ph = (void *)((char *)ph + task->eh->e_phentsize)) {
5265 if (ph->p_type != PT_LOAD) {
5268 prot = (((ph->p_flags & PF_R) ? PROT_READ : 0) |
5269 ((ph->p_flags & PF_W) ? PROT_WRITE : 0) |
5270 ((ph->p_flags & PF_X) ? PROT_EXEC : 0));
5271 map = mmap(0, ph->p_memsz + (ph->p_vaddr & PAGE_SIZE - 1),
5273 task->fd, ph->p_offset & -PAGE_SIZE + task->file_offset);
5277 task->name, errno, ph->p_memsz + (ph->p_vaddr & PAGE_SIZE - 1));
5281 (ph->p_vaddr & PAGE_SIZE - 1);
5282 task->p->loadmap->segs[i].p_vaddr = ph->p_vaddr;
5283 task->p->loadmap->segs[i].p_memsz = ph->p_memsz;
5286 size_t brk = (ph->p_vaddr & PAGE_SIZE - 1) + ph->p_filesz;
5288 size_t pgend = (brk + ph->p_memsz - ph->p_filesz + PAGE_SIZE - 1) & -PAGE_SIZE;
5411 for (ph = task->ph0, i = task->eh->e_phnum; i; i--, ph = (void *)((char *)ph + task->eh->e_phentsize)) {
5412 if (ph->p_type == PT_OHOS_RANDOMDATA) {
5413 fill_random_data((void *)(ph->p_vaddr + base), ph->p_memsz);
5416 if (ph->p_type != PT_LOAD) {
5421 if (!task->p->phdr && task->eh->e_phoff >= ph->p_offset
5422 && task->eh->e_phoff + task->phsize <= ph->p_offset + ph->p_filesz) {
5423 task->p->phdr = (void *)(base + ph->p_vaddr + (task->eh->e_phoff - ph->p_offset));
5427 this_min = ph->p_vaddr & -PAGE_SIZE;
5428 this_max = ph->p_vaddr + ph->p_memsz + PAGE_SIZE - 1 & -PAGE_SIZE;
5429 off_start = ph->p_offset & -PAGE_SIZE;
5430 prot = (((ph->p_flags & PF_R) ? PROT_READ : 0) |
5431 ((ph->p_flags & PF_W) ? PROT_WRITE : 0) |
5432 ((ph->p_flags & PF_X) ? PROT_EXEC : 0));
5443 if ((ph->p_flags & PF_X) && (ph->p_align == KPMD_SIZE) && hugepage_enabled)
5445 if (ph->p_memsz > ph->p_filesz && (ph->p_flags & PF_W)) {
5446 size_t brk = (size_t)base + ph->p_vaddr + ph->p_filesz;
6158 Phdr *ph = p->phdr;
6159 for (cnt = p->phnum; cnt--; ph = (void *)((char *)ph + p->phentsize)) {
6160 if (ph->p_type != PT_LOAD) continue;
6161 size_t seg_start = p->base + ph->p_vaddr;
6162 size_t seg_file_end = seg_start + ph->p_filesz + PAGE_SIZE - 1 & -PAGE_SIZE;
6163 size_t seg_max_addr = seg_start + ph->p_memsz + PAGE_SIZE - 1 & -PAGE_SIZE;
6165 if (zeromap_size > 0 && (ph->p_flags & PF_W)) {