Lines Matching refs:sechdrs

183 			    Elf_Shdr *sechdrs, const char *secstrings)
197 sechdrs[i].sh_entsize = ~0UL;
201 Elf_Shdr *s = &sechdrs[i];
424 static int apply_relocations(Elf32_Shdr *sechdrs,
430 Elf32_Rel *rel = (void *) sechdrs[relsec].sh_addr;
437 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
441 location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
444 sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
476 static void simplify_symbols(Elf_Shdr *sechdrs,
482 Elf_Sym *sym = (void *)sechdrs[symindex].sh_addr;
484 unsigned int i, n = sechdrs[symindex].sh_size / sizeof(Elf_Sym);
489 if (strncmp(secstrings + sechdrs[i].sh_name, ".bss", 4) == 0) {
490 bssbase = sechdrs[i].sh_addr;
523 secbase = sechdrs[sym[i].st_shndx].sh_addr;
535 static void dump_elfsymbols(Elf_Shdr *sechdrs, unsigned int symindex,
538 Elf_Sym *sym = (void *)sechdrs[symindex].sh_addr;
539 unsigned int i, n = sechdrs[symindex].sh_size / sizeof(Elf_Sym);
549 static int find_vpe_symbols(struct vpe *v, Elf_Shdr *sechdrs,
553 Elf_Sym *sym = (void *)sechdrs[symindex].sh_addr;
554 unsigned int i, n = sechdrs[symindex].sh_size / sizeof(Elf_Sym);
578 Elf_Shdr *sechdrs;
595 || hdr->e_shentsize != sizeof(*sechdrs)) {
611 sechdrs = (void *)hdr + hdr->e_shoff;
612 secstrings = (void *)hdr + sechdrs[hdr->e_shstrndx].sh_offset;
613 sechdrs[0].sh_addr = 0;
620 if ((sechdrs[i].sh_type != SHT_NOBITS) &&
621 (len < sechdrs[i].sh_offset + sechdrs[i].sh_size)) {
629 sechdrs[i].sh_addr = (size_t) hdr +
630 sechdrs[i].sh_offset;
633 if (sechdrs[i].sh_type == SHT_SYMTAB) {
635 strindex = sechdrs[i].sh_link;
637 sechdrs[strindex].sh_offset;
640 layout_sections(&mod, hdr, sechdrs, secstrings);
653 if (!(sechdrs[i].sh_flags & SHF_ALLOC))
656 dest = v->load_addr + sechdrs[i].sh_entsize;
658 if (sechdrs[i].sh_type != SHT_NOBITS)
659 memcpy(dest, (void *)sechdrs[i].sh_addr,
660 sechdrs[i].sh_size);
662 sechdrs[i].sh_addr = (unsigned long)dest;
665 secstrings + sechdrs[i].sh_name,
666 sechdrs[i].sh_addr);
670 simplify_symbols(sechdrs, symindex, strtab, secstrings,
675 const char *strtab = (char *)sechdrs[strindex].sh_addr;
676 unsigned int info = sechdrs[i].sh_info;
683 if (!(sechdrs[info].sh_flags & SHF_ALLOC))
686 if (sechdrs[i].sh_type == SHT_REL)
687 err = apply_relocations(sechdrs, strtab,
689 else if (sechdrs[i].sh_type == SHT_RELA)
690 err = apply_relocate_add(sechdrs, strtab,
713 if (sechdrs[i].sh_type == SHT_SYMTAB) {
715 strindex = sechdrs[i].sh_link;
717 sechdrs[strindex].sh_offset;
723 sechdrs[i].sh_addr = (size_t) hdr +
724 sechdrs[i].sh_offset;
733 if ((find_vpe_symbols(v, sechdrs, symindex, strtab, &mod)) < 0) {