Lines Matching full:p_vaddr
61 p_vaddr -> segment's virtual address
66 The loadable segments can be seen as a list of [p_vaddr ... p_vaddr+p_memsz)
78 Finally, the real load addrs of each segment is not p_vaddr. Instead the
99 constant offset from their p_vaddr value. This offset is computed as the
100 difference between the first segment's load address, and its p_vaddr value.
106 load_bias = phdr0_load_address - PAGE_START(phdr0->p_vaddr)
109 possible wrap around UINT32_MAX for possible large p_vaddr values).
114 phdr0_load_address + PAGE_OFFSET(phdr0->p_vaddr)
118 PAGE_OFFSET(phdr0->p_vaddr) == PAGE_OFFSET(phdr0->p_offset)
120 The load_bias must be added to any p_vaddr value read from the ELF file to
157 if (phdr->p_vaddr < min_vaddr) {
158 min_vaddr = phdr->p_vaddr;
161 if (phdr->p_vaddr + phdr->p_memsz > max_vaddr) {
162 max_vaddr = phdr->p_vaddr + phdr->p_memsz;
196 ELF::Addr seg_page_start = PAGE_START(phdr->p_vaddr) + load_bias;
198 PAGE_END(phdr->p_vaddr + phdr->p_memsz) + load_bias;
281 * p_vaddr field down to the previous page boundary. If
287 *relro_start = PAGE_START(phdr->p_vaddr) + load_bias;
289 PAGE_END(phdr->p_vaddr + phdr->p_memsz) + load_bias - *relro_start;
356 *arm_exidx = (ELF::Addr*)(load_bias + phdr->p_vaddr);
394 *dynamic = reinterpret_cast<const ELF::Dyn*>(load_bias + phdr->p_vaddr);