Lines Matching refs:phdr
28 static bool mdt_phdr_valid(const struct elf32_phdr *phdr) in mdt_phdr_valid() argument
30 if (phdr->p_type != PT_LOAD) in mdt_phdr_valid()
33 if ((phdr->p_flags & QCOM_MDT_TYPE_MASK) == QCOM_MDT_TYPE_HASH) in mdt_phdr_valid()
36 if (!phdr->p_memsz) in mdt_phdr_valid()
51 const struct elf32_phdr *phdr; in qcom_mdt_get_size() local
61 phdr = &phdrs[i]; in qcom_mdt_get_size()
63 if (!mdt_phdr_valid(phdr)) in qcom_mdt_get_size()
66 if (phdr->p_paddr < min_addr) in qcom_mdt_get_size()
67 min_addr = phdr->p_paddr; in qcom_mdt_get_size()
69 if (phdr->p_paddr + phdr->p_memsz > max_addr) in qcom_mdt_get_size()
70 max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K); in qcom_mdt_get_size()
83 const struct elf32_phdr *phdr; in __qcom_mdt_load() local
120 phdr = &phdrs[i]; in __qcom_mdt_load()
122 if (!mdt_phdr_valid(phdr)) in __qcom_mdt_load()
125 if (phdr->p_flags & QCOM_MDT_RELOCATABLE) in __qcom_mdt_load()
128 if (phdr->p_paddr < min_addr) in __qcom_mdt_load()
129 min_addr = phdr->p_paddr; in __qcom_mdt_load()
131 if (phdr->p_paddr + phdr->p_memsz > max_addr) in __qcom_mdt_load()
132 max_addr = ALIGN(phdr->p_paddr + phdr->p_memsz, SZ_4K); in __qcom_mdt_load()
159 phdr = &phdrs[i]; in __qcom_mdt_load()
161 if (!mdt_phdr_valid(phdr)) in __qcom_mdt_load()
164 offset = phdr->p_paddr - mem_reloc; in __qcom_mdt_load()
165 if (offset < 0 || offset + phdr->p_memsz > mem_size) { in __qcom_mdt_load()
173 if (phdr->p_filesz) { in __qcom_mdt_load()
176 ptr, phdr->p_filesz); in __qcom_mdt_load()
185 if (phdr->p_memsz > phdr->p_filesz) in __qcom_mdt_load()
186 memset(ptr + phdr->p_filesz, 0, phdr->p_memsz - phdr->p_filesz); in __qcom_mdt_load()