Lines Matching refs:phdr
44 Elf_Phdr **phdr);
70 Elf_Phdr *phdr; in map_object() local
106 hdr = get_elf_header(fd, path, sb, &phdr); in map_object()
114 phsize = hdr->e_phnum * sizeof(phdr[0]); in map_object()
115 phlimit = phdr + hdr->e_phnum; in map_object()
128 while (phdr < phlimit) { in map_object()
129 switch (phdr->p_type) { in map_object()
132 phinterp = phdr; in map_object()
136 segs[++nsegs] = phdr; in map_object()
149 phdr_vaddr = phdr->p_vaddr; in map_object()
150 phsize = phdr->p_memsz; in map_object()
154 phdyn = phdr; in map_object()
158 phtls = phdr; in map_object()
162 stack_flags = phdr->p_flags; in map_object()
166 relro_page = phdr->p_vaddr; in map_object()
167 relro_size = phdr->p_memsz; in map_object()
171 if (phdr->p_offset > PAGE_SIZE || in map_object()
172 phdr->p_offset + phdr->p_filesz > PAGE_SIZE) { in map_object()
173 note_map_len = round_page(phdr->p_offset + in map_object()
174 phdr->p_filesz) - trunc_page(phdr->p_offset); in map_object()
176 MAP_PRIVATE, fd, trunc_page(phdr->p_offset)); in map_object()
181 note_start = (Elf_Addr)(note_map + phdr->p_offset - in map_object()
182 trunc_page(phdr->p_offset)); in map_object()
184 note_start = (Elf_Addr)(char *)hdr + phdr->p_offset; in map_object()
186 note_end = note_start + phdr->p_filesz; in map_object()
190 ++phdr; in map_object()
303 obj->phdr = (const Elf_Phdr *)(obj->relocbase + phdr_vaddr); in map_object()
305 obj->phdr = malloc(phsize); in map_object()
306 if (obj->phdr == NULL) { in map_object()
311 memcpy(__DECONST(char *, obj->phdr), (char *)hdr + hdr->e_phoff, phsize); in map_object()
343 munmap(phdr, hdr->e_phnum * sizeof(phdr[0])); in map_object()
386 Elf_Phdr *phdr; in get_elf_header() local
411 phdr = (Elf_Phdr *)((char *)hdr + hdr->e_phoff); in get_elf_header()
413 phdr = mmap(NULL, hdr->e_phnum * sizeof(phdr[0]), in get_elf_header()
416 if (phdr == MAP_FAILED) { in get_elf_header()
422 *phdr_p = phdr; in get_elf_header()
468 free(__DECONST(void *, obj->phdr)); in obj_free()