Lines Matching defs:phdr
888 static bool q6v5_phdr_valid(const struct elf32_phdr *phdr)
890 if (phdr->p_type != PT_LOAD)
893 if ((phdr->p_flags & QCOM_MDT_TYPE_MASK) == QCOM_MDT_TYPE_HASH)
896 if (!phdr->p_memsz)
1120 const struct elf32_phdr *phdr;
1163 phdr = &phdrs[i];
1165 if (!q6v5_phdr_valid(phdr))
1168 if (phdr->p_flags & QCOM_MDT_RELOCATABLE)
1171 if (phdr->p_paddr < min_addr)
1172 min_addr = phdr->p_paddr;
1174 if (phdr->p_paddr + phdr->p_memsz > max_addr)
1175 max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K);
1199 phdr = &phdrs[i];
1201 if (!q6v5_phdr_valid(phdr))
1204 offset = phdr->p_paddr - mpss_reloc;
1205 if (offset < 0 || offset + phdr->p_memsz > qproc->mpss_size) {
1211 if (phdr->p_filesz > phdr->p_memsz) {
1219 ptr = memremap(qproc->mpss_phys + offset, phdr->p_memsz, MEMREMAP_WC);
1223 &qproc->mpss_phys, offset, phdr->p_memsz);
1227 if (phdr->p_filesz && phdr->p_offset < fw->size) {
1229 if (phdr->p_offset + phdr->p_filesz > fw->size) {
1238 memcpy(ptr, fw->data + phdr->p_offset, phdr->p_filesz);
1239 } else if (phdr->p_filesz) {
1243 ptr, phdr->p_filesz);
1250 if (seg_fw->size != phdr->p_filesz) {
1263 if (phdr->p_memsz > phdr->p_filesz) {
1264 memset(ptr + phdr->p_filesz, 0,
1265 phdr->p_memsz - phdr->p_filesz);
1268 size += phdr->p_memsz;
1419 const struct elf32_phdr *phdr;
1439 phdr = &phdrs[i];
1441 if (!q6v5_phdr_valid(phdr))
1444 ret = rproc_coredump_add_custom_segment(rproc, phdr->p_paddr,
1445 phdr->p_memsz,
1451 qproc->total_dump_size += phdr->p_memsz;