Lines Matching refs:phdr

20 static bool mdt_phdr_valid(const struct elf32_phdr *phdr)
22 if (phdr->p_type != PT_LOAD)
25 if ((phdr->p_flags & QCOM_MDT_TYPE_MASK) == QCOM_MDT_TYPE_HASH)
28 if (!phdr->p_memsz)
38 const struct elf32_phdr *phdr = &phdrs[segment];
52 ptr, phdr->p_filesz);
59 if (seg_fw->size != phdr->p_filesz) {
81 const struct elf32_phdr *phdr;
91 phdr = &phdrs[i];
93 if (!mdt_phdr_valid(phdr))
96 if (phdr->p_paddr < min_addr)
97 min_addr = phdr->p_paddr;
99 if (phdr->p_paddr + phdr->p_memsz > max_addr)
100 max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K);
209 const struct elf32_phdr *phdr;
223 phdr = &phdrs[i];
225 if (!mdt_phdr_valid(phdr))
228 if (phdr->p_flags & QCOM_MDT_RELOCATABLE)
231 if (phdr->p_paddr < min_addr)
232 min_addr = phdr->p_paddr;
234 if (phdr->p_paddr + phdr->p_memsz > max_addr)
235 max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K);
301 const struct elf32_phdr *phdr;
320 phdr = &phdrs[i];
322 if (!mdt_phdr_valid(phdr))
325 if (phdr->p_flags & QCOM_MDT_RELOCATABLE)
328 if (phdr->p_paddr < min_addr)
329 min_addr = phdr->p_paddr;
347 phdr = &phdrs[i];
349 if (!mdt_phdr_valid(phdr))
352 offset = phdr->p_paddr - mem_reloc;
353 if (offset < 0 || offset + phdr->p_memsz > mem_size) {
359 if (phdr->p_filesz > phdr->p_memsz) {
369 if (phdr->p_filesz && !is_split) {
371 if (phdr->p_offset + phdr->p_filesz > fw->size) {
378 memcpy(ptr, fw->data + phdr->p_offset, phdr->p_filesz);
379 } else if (phdr->p_filesz) {
386 if (phdr->p_memsz > phdr->p_filesz)
387 memset(ptr + phdr->p_filesz, 0, phdr->p_memsz - phdr->p_filesz);