Lines Matching refs:shdr
227 Elf_Shdr *shdr, *cshdr, *lshdr; in __elfN() local
238 shdr = alloc_pread(VECTX_HANDLE(ef), (off_t)hdr->e_shoff, shdrbytes); in __elfN()
239 if (shdr == NULL) { in __elfN()
244 ef->e_shdr = shdr; in __elfN()
252 shdr[i].sh_addr = 0; in __elfN()
254 if (shdr[i].sh_size == 0) in __elfN()
256 switch (shdr[i].sh_type) { in __elfN()
264 if ((shdr[i].sh_flags & SHF_ALLOC) == 0) in __elfN()
266 lastaddr = roundup(lastaddr, shdr[i].sh_addralign); in __elfN()
267 shdr[i].sh_addr = (Elf_Addr)lastaddr; in __elfN()
268 lastaddr += shdr[i].sh_size; in __elfN()
276 switch (shdr[i].sh_type) { in __elfN()
288 lastaddr = roundup(lastaddr, shdr[ef->symtabindex].sh_addralign); in __elfN()
289 shdr[ef->symtabindex].sh_addr = (Elf_Addr)lastaddr; in __elfN()
290 lastaddr += shdr[ef->symtabindex].sh_size; in __elfN()
292 symstrindex = shdr[ef->symtabindex].sh_link; in __elfN()
294 shdr[symstrindex].sh_type != SHT_STRTAB) { in __elfN()
299 lastaddr = roundup(lastaddr, shdr[symstrindex].sh_addralign); in __elfN()
300 shdr[symstrindex].sh_addr = (Elf_Addr)lastaddr; in __elfN()
301 lastaddr += shdr[symstrindex].sh_size; in __elfN()
305 shdr[hdr->e_shstrndx].sh_type != SHT_STRTAB) { in __elfN()
311 lastaddr = roundup(lastaddr, shdr[ef->shstrindex].sh_addralign); in __elfN()
312 shdr[ef->shstrindex].sh_addr = (Elf_Addr)lastaddr; in __elfN()
313 lastaddr += shdr[ef->shstrindex].sh_size; in __elfN()
317 switch (shdr[i].sh_type) { in __elfN()
320 if ((shdr[shdr[i].sh_info].sh_flags & SHF_ALLOC) == 0) in __elfN()
322 lastaddr = roundup(lastaddr, shdr[i].sh_addralign); in __elfN()
323 shdr[i].sh_addr = (Elf_Addr)lastaddr; in __elfN()
324 lastaddr += shdr[i].sh_size; in __elfN()
343 if (shdr[i].sh_addr == 0 || in __elfN()
344 shdr[i].sh_type == SHT_NOBITS) in __elfN()
348 lshdr->sh_offset >= shdr[i].sh_offset) in __elfN()
352 cshdr->sh_offset > shdr[i].sh_offset) in __elfN()
353 cshdr = &shdr[i]; in __elfN()
367 file_addmetadata(fp, MODINFOMD_SHDR, shdrbytes, shdr); in __elfN()
471 Elf_Shdr *shdr; in __elfN() local
477 shdr = ef->e_shdr; in __elfN()
478 shstrtab = shdr[ef->shstrindex].sh_addr; in __elfN()
481 if (shdr[i].sh_type != SHT_PROGBITS) in __elfN()
483 if (shdr[i].sh_name == 0) in __elfN()
485 p = strdupout(shstrtab + shdr[i].sh_name); in __elfN()
487 *startp = shdr[i].sh_addr; in __elfN()
488 *stopp = shdr[i].sh_addr + shdr[i].sh_size; in __elfN()
509 Elf_Shdr *shdr; in __elfN() local
517 shdr = ef->e_shdr; in __elfN()
520 if (shdr[i].sh_type != SHT_RELA && shdr[i].sh_type != SHT_REL) in __elfN()
522 base = shdr[shdr[i].sh_info].sh_addr; in __elfN()
523 if (base == 0 || shdr[i].sh_addr == 0) in __elfN()
526 shdr[shdr[i].sh_info].sh_size) in __elfN()
529 switch (shdr[i].sh_type) { in __elfN()
531 abase = (Elf_Rela *)(intptr_t)shdr[i].sh_addr; in __elfN()
533 nrela = shdr[i].sh_size / sizeof(Elf_Rela); in __elfN()
544 rbase = (Elf_Rel *)(intptr_t)shdr[i].sh_addr; in __elfN()
546 nrel = shdr[i].sh_size / sizeof(Elf_Rel); in __elfN()