Lines Matching refs:shdr

179 static int elf_section_header_convert(const Elf_Ehdr *ehdr, Elf_Shdr *shdr)  in elf_section_header_convert()  argument
193 CONVERT_SWITCH(ehdr, shdr, SECTION_HEADER_FIELDS); in elf_section_header_convert()
212 static int elf_section_header_convert(const Elf_Ehdr *ehdr, Elf_Shdr *shdr) in elf_section_header_convert() argument
535 Elf_Shdr *shdr; local
555 shdr = NULL;
709 shdr = alloc_pread(VECTX_HANDLE(ef), ehdr->e_shoff, chunk);
710 if (shdr == NULL) {
717 elf_section_header_convert(ehdr, &shdr[i]);
719 file_addmetadata(fp, MODINFOMD_SHDR, chunk, shdr);
726 chunk = shdr[ehdr->e_shstrndx].sh_size;
729 shdr[ehdr->e_shstrndx].sh_offset, chunk);
732 if (strcmp(shstr + shdr[i].sh_name,
735 ctors = shdr[i].sh_addr;
738 size = shdr[i].sh_size;
753 if (shdr[i].sh_type != SHT_SYMTAB)
758 if (shdr[i].sh_offset >= phdr[j].p_offset &&
759 (shdr[i].sh_offset + shdr[i].sh_size <=
761 shdr[i].sh_offset = 0;
762 shdr[i].sh_size = 0;
766 if (shdr[i].sh_offset == 0 || shdr[i].sh_size == 0)
770 symstrindex = shdr[i].sh_link;
782 switch(shdr[i].sh_type) {
793 size = shdr[i].sh_size;
800 (uintmax_t)shdr[i].sh_size, (uintmax_t)shdr[i].sh_offset,
802 (uintmax_t)(lastaddr + shdr[i].sh_size));
808 if (VECTX_LSEEK(VECTX_HANDLE(ef), (off_t)shdr[i].sh_offset, SEEK_SET) == -1) {
815 result = archsw.arch_readin(VECTX_HANDLE(ef), lastaddr, shdr[i].sh_size);
816 if (result < 0 || (size_t)result != shdr[i].sh_size) {
820 (uintmax_t)shdr[i].sh_size);
826 lastaddr += shdr[i].sh_size;
933 if (shdr)
934 free(shdr);
993 Elf_Shdr *sh_meta, *shdr = NULL; local
1014 shdr = alloc_pread(VECTX_HANDLE(&ef), ef.ehdr->e_shoff, size);
1015 if (shdr == NULL) {
1021 shstrtab = alloc_pread(VECTX_HANDLE(&ef), shdr[ef.ehdr->e_shstrndx].sh_offset,
1022 shdr[ef.ehdr->e_shstrndx].sh_size);
1033 if (strcmp(&shstrtab[shdr[i].sh_name],
1035 sh_meta = &shdr[i];
1037 if ((strcmp(&shstrtab[shdr[i].sh_name], ".data") == 0) ||
1038 (strcmp(&shstrtab[shdr[i].sh_name], ".rodata") == 0)) {
1039 sh_data[j++] = &shdr[i];
1094 if (shdr != NULL)
1095 free(shdr);