Lines Matching refs:ph

1255 	Phdr *ph = dso->phdr;
1258 for (; phcnt--; ph=(void *)((char *)ph+dso->phentsize)) {
1259 if (ph->p_type!=PT_LOAD) continue;
1260 if ((ph->p_flags&(PF_R|PF_W))!=(PF_R|PF_W)) continue;
1261 reclaim(dso, ph->p_vaddr & -PAGE_SIZE, ph->p_vaddr);
1262 reclaim(dso, ph->p_vaddr+ph->p_memsz,
1263 ph->p_vaddr+ph->p_memsz+PAGE_SIZE-1 & -PAGE_SIZE);
1430 Phdr *ph, *ph0;
1453 ph = ph0 = allocated_buf;
1458 ph = ph0 = (void *)(buf + 1);
1460 ph = ph0 = (void *)((char *)buf + eh->e_phoff);
1462 for (i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) {
1463 if (ph->p_type == PT_DYNAMIC) {
1464 dyn = ph->p_vaddr;
1465 } else if (ph->p_type == PT_TLS) {
1466 tls_image = ph->p_vaddr;
1467 dso->tls.align = ph->p_align;
1468 dso->tls.len = ph->p_filesz;
1469 dso->tls.size = ph->p_memsz;
1470 } else if (ph->p_type == PT_GNU_RELRO) {
1471 dso->relro_start = ph->p_vaddr & -PAGE_SIZE;
1472 dso->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE;
1473 } else if (ph->p_type == PT_GNU_STACK) {
1474 if (!runtime && ph->p_memsz > __default_stacksize) {
1476 ph->p_memsz < DEFAULT_STACK_MAX ?
1477 ph->p_memsz : DEFAULT_STACK_MAX;
1480 if (ph->p_type != PT_LOAD) continue;
1482 if (ph->p_vaddr < addr_min) {
1483 addr_min = ph->p_vaddr;
1484 off_start = ph->p_offset;
1485 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
1486 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
1487 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
1489 if (ph->p_vaddr+ph->p_memsz > addr_max) {
1490 addr_max = ph->p_vaddr+ph->p_memsz;
1499 for (ph=ph0, i=0; i<nsegs; ph=(void *)((char *)ph+eh->e_phentsize)) {
1500 if (ph->p_type != PT_LOAD) continue;
1501 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
1502 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
1503 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
1504 map = mmap(0, ph->p_memsz + (ph->p_vaddr & PAGE_SIZE-1),
1506 fd, ph->p_offset & -PAGE_SIZE);
1512 (ph->p_vaddr & PAGE_SIZE-1);
1513 dso->loadmap->segs[i].p_vaddr = ph->p_vaddr;
1514 dso->loadmap->segs[i].p_memsz = ph->p_memsz;
1517 size_t brk = (ph->p_vaddr & PAGE_SIZE-1)
1518 + ph->p_filesz;
1520 size_t pgend = brk + ph->p_memsz - ph->p_filesz
1610 for (ph=ph0, i=eh->e_phnum; i; i--, ph=(void *)((char *)ph+eh->e_phentsize)) {
1611 if (ph->p_type == PT_OHOS_RANDOMDATA) {
1612 fill_random_data((void *)(ph->p_vaddr + base), ph->p_memsz);
1615 if (ph->p_type != PT_LOAD) continue;
1618 if (!dso->phdr && eh->e_phoff >= ph->p_offset
1619 && eh->e_phoff+phsize <= ph->p_offset+ph->p_filesz) {
1620 dso->phdr = (void *)(base + ph->p_vaddr
1621 + (eh->e_phoff-ph->p_offset));
1625 this_min = ph->p_vaddr & -PAGE_SIZE;
1626 this_max = ph->p_vaddr+ph->p_memsz+PAGE_SIZE-1 & -PAGE_SIZE;
1627 off_start = ph->p_offset & -PAGE_SIZE;
1628 prot = (((ph->p_flags&PF_R) ? PROT_READ : 0) |
1629 ((ph->p_flags&PF_W) ? PROT_WRITE: 0) |
1630 ((ph->p_flags&PF_X) ? PROT_EXEC : 0));
1632 if ((ph->p_vaddr & -PAGE_SIZE) != addr_min || DL_NOMMU_SUPPORT)
1635 if ((ph->p_flags & PF_X) && (ph->p_align == KPMD_SIZE) && hugepage_enabled)
1637 if (ph->p_memsz > ph->p_filesz && (ph->p_flags&PF_W)) {
1638 size_t brk = (size_t)base+ph->p_vaddr+ph->p_filesz;
2513 Phdr *ph = p->phdr;
2514 for (cnt = p->phnum; cnt--; ph = (void *)((char *)ph + p->phentsize)) {
2515 if (ph->p_type == PT_DYNAMIC) {
2516 p->dynv = laddr(p, ph->p_vaddr);
2517 } else if (ph->p_type == PT_GNU_RELRO) {
2518 p->relro_start = ph->p_vaddr & -PAGE_SIZE;
2519 p->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE;
2520 } else if (ph->p_type == PT_GNU_STACK) {
2521 if (!runtime && ph->p_memsz > __default_stacksize) {
2523 ph->p_memsz < DEFAULT_STACK_MAX ?
2524 ph->p_memsz : DEFAULT_STACK_MAX;
2527 if (ph->p_type != PT_LOAD) continue;
2528 if (ph->p_vaddr < min_addr)
2529 min_addr = ph->p_vaddr;
2530 if (ph->p_vaddr+ph->p_memsz > max_addr)
2531 max_addr = ph->p_vaddr+ph->p_memsz;
3788 Phdr *ph = p->phdr;
3792 for (; phcnt--; ph=(void *)((char *)ph+entsz)) {
3793 if (ph->p_type != PT_LOAD) continue;
3794 if (a-base-ph->p_vaddr < ph->p_memsz)
4710 Phdr *ph;
4741 ph = task->ph0 = task->allocated_buf;
4752 ph = task->ph0 = (void *)(task->ehdr_buf + 1);
4754 ph = task->ph0 = (void *)((char *)task->ehdr_buf + task->eh->e_phoff);
4757 for (i = task->eh->e_phnum; i; i--, ph = (void *)((char *)ph + task->eh->e_phentsize)) {
4758 if (ph->p_type == PT_DYNAMIC) {
4759 task->dyn = ph->p_vaddr;
4760 } else if (ph->p_type == PT_TLS) {
4761 task->tls_image = ph->p_vaddr;
4762 task->tls.align = ph->p_align;
4763 task->tls.len = ph->p_filesz;
4764 task->tls.size = ph->p_memsz;
4767 if (ph->p_type != PT_DYNAMIC) {
4771 off_start = ph->p_offset;
4773 task->dyn_map_len = ph->p_memsz + (ph->p_offset - off_start);
4782 task->dyn_addr = (size_t *)((unsigned char *)task->dyn_map + (ph->p_offset - off_start));
4848 Phdr *ph = task->ph0;
4857 for (i = task->eh->e_phnum; i; i--, ph = (void *)((char *)ph + task->eh->e_phentsize)) {
4858 if (ph->p_type == PT_GNU_RELRO) {
4859 task->p->relro_start = ph->p_vaddr & -PAGE_SIZE;
4860 task->p->relro_end = (ph->p_vaddr + ph->p_memsz) & -PAGE_SIZE;
4861 } else if (ph->p_type == PT_GNU_STACK) {
4862 if (!runtime && ph->p_memsz > __default_stacksize) {
4864 ph->p_memsz < DEFAULT_STACK_MAX ?
4865 ph->p_memsz : DEFAULT_STACK_MAX;
4868 if (ph->p_type != PT_LOAD) {
4872 if (ph->p_vaddr < addr_min) {
4873 addr_min = ph->p_vaddr;
4874 off_start = ph->p_offset;
4875 prot = (((ph->p_flags & PF_R) ? PROT_READ : 0) |
4876 ((ph->p_flags & PF_W) ? PROT_WRITE : 0) |
4877 ((ph->p_flags & PF_X) ? PROT_EXEC : 0));
4879 if (ph->p_vaddr + ph->p_memsz > addr_max) {
4880 addr_max = ph->p_vaddr + ph->p_memsz;
4894 for (ph = task->ph0, i = 0; i < nsegs; ph = (void *)((char *)ph + task->eh->e_phentsize)) {
4895 if (ph->p_type != PT_LOAD) {
4898 prot = (((ph->p_flags & PF_R) ? PROT_READ : 0) |
4899 ((ph->p_flags & PF_W) ? PROT_WRITE : 0) |
4900 ((ph->p_flags & PF_X) ? PROT_EXEC : 0));
4901 map = mmap(0, ph->p_memsz + (ph->p_vaddr & PAGE_SIZE - 1),
4903 task->fd, ph->p_offset & -PAGE_SIZE + task->file_offset);
4907 task->name, errno, ph->p_memsz + (ph->p_vaddr & PAGE_SIZE - 1));
4911 (ph->p_vaddr & PAGE_SIZE - 1);
4912 task->p->loadmap->segs[i].p_vaddr = ph->p_vaddr;
4913 task->p->loadmap->segs[i].p_memsz = ph->p_memsz;
4916 size_t brk = (ph->p_vaddr & PAGE_SIZE - 1) + ph->p_filesz;
4918 size_t pgend = (brk + ph->p_memsz - ph->p_filesz + PAGE_SIZE - 1) & -PAGE_SIZE;
5021 for (ph = task->ph0, i = task->eh->e_phnum; i; i--, ph = (void *)((char *)ph + task->eh->e_phentsize)) {
5022 if (ph->p_type == PT_OHOS_RANDOMDATA) {
5023 fill_random_data((void *)(ph->p_vaddr + base), ph->p_memsz);
5026 if (ph->p_type != PT_LOAD) {
5031 if (!task->p->phdr && task->eh->e_phoff >= ph->p_offset
5032 && task->eh->e_phoff + task->phsize <= ph->p_offset + ph->p_filesz) {
5033 task->p->phdr = (void *)(base + ph->p_vaddr + (task->eh->e_phoff - ph->p_offset));
5037 this_min = ph->p_vaddr & -PAGE_SIZE;
5038 this_max = ph->p_vaddr + ph->p_memsz + PAGE_SIZE - 1 & -PAGE_SIZE;
5039 off_start = ph->p_offset & -PAGE_SIZE;
5040 prot = (((ph->p_flags & PF_R) ? PROT_READ : 0) |
5041 ((ph->p_flags & PF_W) ? PROT_WRITE : 0) |
5042 ((ph->p_flags & PF_X) ? PROT_EXEC : 0));
5053 if ((ph->p_flags & PF_X) && (ph->p_align == KPMD_SIZE) && hugepage_enabled)
5055 if (ph->p_memsz > ph->p_filesz && (ph->p_flags & PF_W)) {
5056 size_t brk = (size_t)base + ph->p_vaddr + ph->p_filesz;
5767 Phdr *ph = p->phdr;
5768 for (cnt = p->phnum; cnt--; ph = (void *)((char *)ph + p->phentsize)) {
5769 if (ph->p_type != PT_LOAD) continue;
5770 size_t seg_start = p->base + ph->p_vaddr;
5771 size_t seg_file_end = seg_start + ph->p_filesz + PAGE_SIZE - 1 & -PAGE_SIZE;
5772 size_t seg_max_addr = seg_start + ph->p_memsz + PAGE_SIZE - 1 & -PAGE_SIZE;
5774 if (zeromap_size > 0 && (ph->p_flags & PF_W)) {