Lines Matching refs:sechdrs

430 arch_kexec_apply_relocations_add(const Elf_Ehdr *ehdr, Elf_Shdr *sechdrs,  in arch_kexec_apply_relocations_add()  argument
439 arch_kexec_apply_relocations(const Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, in arch_kexec_apply_relocations() argument
467 vfree(pi->sechdrs); in kimage_file_post_load_cleanup()
468 pi->sechdrs = NULL; in kimage_file_post_load_cleanup()
2303 Elf_Shdr *sechdrs = NULL; in __kexec_load_purgatory() local
2319 sechdrs = vzalloc(pi->ehdr->e_shnum * sizeof(Elf_Shdr)); in __kexec_load_purgatory()
2320 if (!sechdrs) in __kexec_load_purgatory()
2323 memcpy(sechdrs, sechdrs_c, pi->ehdr->e_shnum * sizeof(Elf_Shdr)); in __kexec_load_purgatory()
2340 if (sechdrs[i].sh_type == SHT_NOBITS) in __kexec_load_purgatory()
2343 sechdrs[i].sh_offset = (unsigned long)pi->ehdr + in __kexec_load_purgatory()
2344 sechdrs[i].sh_offset; in __kexec_load_purgatory()
2353 if (!(sechdrs[i].sh_flags & SHF_ALLOC)) in __kexec_load_purgatory()
2356 if (!(sechdrs[i].sh_flags & SHF_EXECINSTR)) in __kexec_load_purgatory()
2360 if (sechdrs[i].sh_addr <= pi->ehdr->e_entry && in __kexec_load_purgatory()
2361 ((sechdrs[i].sh_addr + sechdrs[i].sh_size) > in __kexec_load_purgatory()
2364 entry -= sechdrs[i].sh_addr; in __kexec_load_purgatory()
2376 if (!(sechdrs[i].sh_flags & SHF_ALLOC)) in __kexec_load_purgatory()
2379 align = sechdrs[i].sh_addralign; in __kexec_load_purgatory()
2380 if (sechdrs[i].sh_type != SHT_NOBITS) { in __kexec_load_purgatory()
2384 buf_sz += sechdrs[i].sh_size; in __kexec_load_purgatory()
2390 bss_sz += sechdrs[i].sh_size; in __kexec_load_purgatory()
2424 if (!(sechdrs[i].sh_flags & SHF_ALLOC)) in __kexec_load_purgatory()
2427 align = sechdrs[i].sh_addralign; in __kexec_load_purgatory()
2428 if (sechdrs[i].sh_type != SHT_NOBITS) { in __kexec_load_purgatory()
2432 src = (char *) sechdrs[i].sh_offset; in __kexec_load_purgatory()
2433 memcpy(buf_addr + offset, src, sechdrs[i].sh_size); in __kexec_load_purgatory()
2436 sechdrs[i].sh_addr = curr_load_addr; in __kexec_load_purgatory()
2442 sechdrs[i].sh_offset = (unsigned long)(buf_addr + offset); in __kexec_load_purgatory()
2445 curr_load_addr += sechdrs[i].sh_size; in __kexec_load_purgatory()
2448 sechdrs[i].sh_addr = bss_addr; in __kexec_load_purgatory()
2449 bss_addr += sechdrs[i].sh_size; in __kexec_load_purgatory()
2455 entry += sechdrs[entry_sidx].sh_addr; in __kexec_load_purgatory()
2461 pi->sechdrs = sechdrs; in __kexec_load_purgatory()
2470 vfree(sechdrs); in __kexec_load_purgatory()
2479 Elf_Shdr *sechdrs = pi->sechdrs; in kexec_apply_relocations() local
2485 if (sechdrs[i].sh_type != SHT_RELA && in kexec_apply_relocations()
2486 sechdrs[i].sh_type != SHT_REL) in kexec_apply_relocations()
2495 if (sechdrs[i].sh_info >= pi->ehdr->e_shnum || in kexec_apply_relocations()
2496 sechdrs[i].sh_link >= pi->ehdr->e_shnum) in kexec_apply_relocations()
2499 section = &sechdrs[sechdrs[i].sh_info]; in kexec_apply_relocations()
2500 symtab = &sechdrs[sechdrs[i].sh_link]; in kexec_apply_relocations()
2517 if (sechdrs[i].sh_type == SHT_RELA) in kexec_apply_relocations()
2519 sechdrs, i); in kexec_apply_relocations()
2520 else if (sechdrs[i].sh_type == SHT_REL) in kexec_apply_relocations()
2522 sechdrs, i); in kexec_apply_relocations()
2568 vfree(pi->sechdrs); in kexec_load_purgatory()
2577 Elf_Shdr *sechdrs; in kexec_purgatory_find_symbol() local
2582 if (!pi->sechdrs || !pi->ehdr) in kexec_purgatory_find_symbol()
2585 sechdrs = pi->sechdrs; in kexec_purgatory_find_symbol()
2589 if (sechdrs[i].sh_type != SHT_SYMTAB) in kexec_purgatory_find_symbol()
2592 if (sechdrs[i].sh_link >= ehdr->e_shnum) in kexec_purgatory_find_symbol()
2595 strtab = (char *)sechdrs[sechdrs[i].sh_link].sh_offset; in kexec_purgatory_find_symbol()
2596 syms = (Elf_Sym *)sechdrs[i].sh_offset; in kexec_purgatory_find_symbol()
2599 for (k = 0; k < sechdrs[i].sh_size/sizeof(Elf_Sym); k++) { in kexec_purgatory_find_symbol()
2631 sechdr = &pi->sechdrs[sym->st_shndx]; in kexec_purgatory_get_symbol_addr()
2648 Elf_Shdr *sechdrs; in kexec_purgatory_get_set_symbol() local
2662 sechdrs = pi->sechdrs; in kexec_purgatory_get_set_symbol()
2664 if (sechdrs[sym->st_shndx].sh_type == SHT_NOBITS) { in kexec_purgatory_get_set_symbol()
2670 sym_buf = (unsigned char *)sechdrs[sym->st_shndx].sh_offset + in kexec_purgatory_get_set_symbol()