| /linux/tools/objtool/include/objtool/ |
| H A D | elf.h | 62 struct reloc *relocs; 102 struct reloc *relocs; 108 struct reloc { 184 struct reloc *elf_create_reloc(struct elf *elf, struct section *sec, in is_reloc_sec() 188 struct reloc *elf_init_reloc(struct elf *elf, struct section *rsec, in sec_changed() 192 struct reloc *elf_init_reloc_text_sym(struct elf *elf, struct section *sec, in mark_sec_changed() 198 struct reloc *elf_init_reloc_data_sym(struct elf *elf, struct section *sec, in sec_num_entries() 219 struct reloc *find_reloc_by_dest(const struct elf *elf, struct section *sec, unsigned long offset); in is_32bit_reloc() 220 struct reloc *find_reloc_by_dest_range(const struct elf *elf, struct section *sec, in is_32bit_reloc() 356 static inline unsigned int reloc_idx(struct reloc *relo 79 struct reloc { global() struct 83 _sym_next_relocreloc global() argument 203 reloc_idx(struct reloc * reloc) reloc_idx() argument 208 reloc_rel(struct reloc * reloc) reloc_rel() argument 215 is_32bit_reloc(struct reloc * reloc) is_32bit_reloc() argument 226 __get_reloc_field(reloc,field) global() argument 233 __set_reloc_field(reloc,field,val) global() argument 241 reloc_offset(struct reloc * reloc) reloc_offset() argument 246 set_reloc_offset(struct elf * elf,struct reloc * reloc,u64 offset) set_reloc_offset() argument 252 reloc_addend(struct reloc * reloc) reloc_addend() argument 257 set_reloc_addend(struct elf * elf,struct reloc * reloc,s64 addend) set_reloc_addend() argument 264 reloc_sym(struct reloc * reloc) reloc_sym() argument 273 reloc_type(struct reloc * reloc) reloc_type() argument 282 set_reloc_sym(struct elf * elf,struct reloc * reloc,unsigned int sym) set_reloc_sym() argument 292 set_reloc_type(struct elf * elf,struct reloc * reloc,unsigned int type) set_reloc_type() argument 306 is_jump_table(struct reloc * reloc) is_jump_table() argument 311 set_jump_table(struct reloc * reloc) set_jump_table() argument 316 sym_next_reloc(struct reloc * reloc) sym_next_reloc() argument 321 set_sym_next_reloc(struct reloc * reloc,struct reloc * next) set_sym_next_reloc() argument 340 for_each_reloc(rsec,reloc) global() argument 346 for_each_reloc_from(rsec,reloc) global() argument 375 reloc_hash(struct reloc * reloc) reloc_hash() argument [all...] |
| H A D | arch.h | 89 s64 arch_insn_adjusted_addend(struct instruction *insn, struct reloc *reloc); 90 u64 arch_adjusted_addend(struct reloc *reloc); 103 bool arch_pc_relative_reloc(struct reloc *reloc); 104 bool arch_absolute_reloc(struct elf *elf, struct reloc *reloc); 106 unsigned int arch_reloc_size(struct reloc *reloc); [all...] |
| H A D | special.h | 36 * Should the reloc at @offset -- the "new" (replacement) field of a special 44 struct reloc *reloc); 45 struct reloc *arch_find_switch_table(struct objtool_file *file,
|
| /linux/tools/objtool/arch/loongarch/ |
| H A D | special.c | 8 struct reloc *reloc) in arch_support_alt_relocation() argument 24 struct reloc *reloc; in get_rodata_table_size_by_table_annotate() local 38 for_each_reloc(rsec, reloc) { in get_rodata_table_size_by_table_annotate() 39 if (reloc->sym->sec->rodata) in get_rodata_table_size_by_table_annotate() 42 if (strcmp(insn->sec->name, reloc->sym->sec->name)) in get_rodata_table_size_by_table_annotate() 51 orig_table->insn_offset = reloc->sym->offset + reloc_addend(reloc); in get_rodata_table_size_by_table_annotate() 52 reloc in get_rodata_table_size_by_table_annotate() 117 struct reloc *reloc; find_reloc_by_table_annotate() local 147 struct reloc *reloc; find_reloc_of_rodata_c_jump_table() local [all...] |
| /linux/tools/objtool/ |
| H A D | klp-diff.c | 227 ERROR("missing reloc section for .discard.sym_checksum"); 238 struct reloc *reloc; 243 reloc = find_reloc_by_dest(elf, sec, i * sizeof(*sym_checksum)); in is_uncorrelated_static_local() 244 if (!reloc) { in is_uncorrelated_static_local() 245 ERROR("can't find reloc for sym_checksum[%d]", i); in is_uncorrelated_static_local() 249 sym = reloc->sym; in is_uncorrelated_static_local() 1174 static bool klp_reloc_needed(struct reloc *patched_reloc) in clone_reloc() 1183 /* For included functions, a regular reloc will do. */ in clone_reloc() 1188 * If exported by a module, it has to be a klp reloc in clone_reloc() 191 struct reloc *reloc; read_sym_checksums() local 842 is_reloc_allowed(struct reloc * reloc) is_reloc_allowed() argument 955 convert_reloc_sym_to_secsym(struct elf * elf,struct reloc * reloc) convert_reloc_sym_to_secsym() argument 969 convert_reloc_secsym_to_sym(struct elf * elf,struct reloc * reloc) convert_reloc_secsym_to_sym() argument 1000 convert_reloc_sym(struct elf * elf,struct reloc * reloc) convert_reloc_sym() argument 1329 struct reloc *reloc; create_fake_symbols() local 1403 struct reloc *reloc; should_keep_special_sym() local 1445 struct reloc *reloc; validate_special_section_klp_reloc() local 1691 struct reloc *reloc; create_klp_sections() local 1707 struct reloc *reloc; create_klp_sections() local 1723 struct reloc *reloc; create_klp_sections() local 1739 struct reloc *reloc; create_klp_sections() local [all...] |
| H A D | elf.c | 320 struct reloc *find_reloc_by_dest_range(const struct elf *elf, struct section *sec, in find_global_symbol_by_name() 323 struct reloc *reloc, *r = NULL; in find_global_symbol_by_name() 332 elf_hash_for_each_possible(elf, reloc, reloc, hash, in iterate_global_symbol_by_demangled_name() 334 if (reloc->sec != rsec) in iterate_global_symbol_by_demangled_name() 337 if (reloc_offset(reloc) >= offset && 338 reloc_offset(reloc) < offset + len) { in find_reloc_by_dest_range() 339 if (!r || reloc_offset(reloc) < reloc_offset(r)) in find_reloc_by_dest_range() 340 r = reloc; in find_reloc_by_dest_range() 341 struct reloc *reloc, *r = NULL; find_reloc_by_dest_range() local 768 struct reloc *reloc; elf_update_sym_relocs() local 1036 struct reloc *reloc, empty = { 0 }; elf_init_reloc() local 1116 struct reloc *reloc; read_relocs() local 1586 struct reloc *reloc; elf_alloc_reloc() local [all...] |
| H A D | check.c | 134 static inline struct reloc *insn_jump_table(struct instruction *insn) in insn_jump_table() 556 struct reloc *reloc; in add_pv_ops() local 576 reloc = find_reloc_by_dest_range(file->elf, sym->sec, off, end - off); in add_pv_ops() 577 if (!reloc) in add_pv_ops() 580 idx = (reloc_offset(reloc) - sym->offset) / sizeof(unsigned long); in add_pv_ops() 582 func = reloc->sym; in add_pv_ops() 584 func = find_symbol_by_offset(reloc->sym->sec, in add_pv_ops() 585 reloc_addend(reloc)); in add_pv_ops() 587 ERROR_FUNC(reloc->sym->sec, reloc_addend(reloc), in add_pv_ops() 595 off = reloc_offset(reloc) + 1; in add_pv_ops() [all …]
|
| /linux/drivers/gpu/drm/radeon/ |
| H A D | r600_cs.c | 974 struct radeon_bo_list *reloc; in r600_cs_check_reg() local 1019 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r600_cs_check_reg() 1025 ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0xffffffff); in r600_cs_check_reg() 1037 r = radeon_cs_packet_next_reloc(p, &reloc, r600_nomm); in r600_cs_check_reg() 1046 if (reloc->tiling_flags & RADEON_TILING_MACRO) { in r600_cs_check_reg() 1079 r = radeon_cs_packet_next_reloc(p, &reloc, r600_nomm); in r600_cs_check_reg() 1087 ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0xffffffff); in r600_cs_check_reg() 1088 track->vgt_strmout_bo[tmp] = reloc->robj; in r600_cs_check_reg() 1089 track->vgt_strmout_bo_mc[tmp] = reloc->gpu_offset; in r600_cs_check_reg() 1102 r = radeon_cs_packet_next_reloc(p, &reloc, r600_nomm); in r600_cs_check_reg() [all …]
|
| H A D | evergreen_cs.c | 1100 struct radeon_bo_list *reloc; in evergreen_cs_handle_reg() local 1146 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in evergreen_cs_handle_reg() 1152 ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0xffffffff); in evergreen_cs_handle_reg() 1175 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in evergreen_cs_handle_reg() 1183 ib[idx] |= Z_ARRAY_MODE(evergreen_cs_get_aray_mode(reloc->tiling_flags)); in evergreen_cs_handle_reg() 1184 track->db_z_info |= Z_ARRAY_MODE(evergreen_cs_get_aray_mode(reloc->tiling_flags)); in evergreen_cs_handle_reg() 1185 if (reloc->tiling_flags & RADEON_TILING_MACRO) { in evergreen_cs_handle_reg() 1188 evergreen_tiling_fields(reloc->tiling_flags, in evergreen_cs_handle_reg() 1217 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in evergreen_cs_handle_reg() 1224 ib[idx] += (u32)((reloc->gpu_offset >> 8) & 0xffffffff); in evergreen_cs_handle_reg() [all …]
|
| H A D | r300.c | 631 struct radeon_bo_list *reloc; in r300_packet0_check() local 665 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r300_packet0_check() 672 track->cb[i].robj = reloc->robj; in r300_packet0_check() 675 ib[idx] = idx_value + ((u32)reloc->gpu_offset); in r300_packet0_check() 678 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r300_packet0_check() 685 track->zb.robj = reloc->robj; in r300_packet0_check() 688 ib[idx] = idx_value + ((u32)reloc->gpu_offset); in r300_packet0_check() 707 r = radeon_cs_packet_next_reloc(p, &reloc, 0); in r300_packet0_check() 717 ((idx_value & ~31) + (u32)reloc->gpu_offset); in r300_packet0_check() 719 if (reloc->tiling_flags & RADEON_TILING_MACRO) in r300_packet0_check() [all …]
|
| /linux/tools/objtool/arch/x86/ |
| H A D | decode.c | 90 s64 arch_insn_adjusted_addend(struct instruction *insn, struct reloc *reloc) in arch_insn_adjusted_addend() argument 92 s64 addend = reloc_addend(reloc); in arch_insn_adjusted_addend() 94 if (arch_pc_relative_reloc(reloc)) in arch_insn_adjusted_addend() 95 addend += insn->offset + insn->len - reloc_offset(reloc); in arch_insn_adjusted_addend() 121 u64 arch_adjusted_addend(struct reloc *reloc) in arch_adjusted_addend() argument 123 unsigned int type = reloc_type(reloc); in arch_adjusted_addend() 124 s64 addend = reloc_addend(reloc); in arch_adjusted_addend() 131 if (type != R_X86_64_PC32 || !is_text_sec(reloc in arch_adjusted_addend() 145 arch_pc_relative_reloc(struct reloc * reloc) arch_pc_relative_reloc() argument 931 arch_reloc_size(struct reloc * reloc) arch_reloc_size() argument 944 arch_absolute_reloc(struct elf * elf,struct reloc * reloc) arch_absolute_reloc() argument [all...] |
| H A D | special.c | 67 struct reloc *reloc) 112 struct reloc *arch_find_switch_table(struct objtool_file *file, in arch_find_switch_table() 116 struct reloc *text_reloc, *rodata_reloc; in arch_find_switch_table() 36 arch_support_alt_relocation(struct special_alt * special_alt,struct instruction * insn,struct reloc * reloc) arch_support_alt_relocation() argument
|
| /linux/arch/riscv/kernel/tests/module_test/ |
| H A D | test_uleb128.S | 23 .reloc second, R_RISCV_SET_ULEB128, second 24 .reloc second, R_RISCV_SUB_ULEB128, first 29 .reloc fourth, R_RISCV_SET_ULEB128, fourth 30 .reloc fourth, R_RISCV_SUB_ULEB128, third
|
| H A D | test_sub32.S | 18 .reloc sub32, R_RISCV_ADD32, second 19 .reloc sub32, R_RISCV_SUB32, first
|
| H A D | test_sub16.S | 18 .reloc sub16, R_RISCV_ADD16, second 19 .reloc sub16, R_RISCV_SUB16, first
|
| H A D | test_sub8.S | 18 .reloc sub8, R_RISCV_ADD8, second 19 .reloc sub8, R_RISCV_SUB8, first
|
| H A D | test_sub6.S | 18 .reloc sub6, R_RISCV_SET6, second 19 .reloc sub6, R_RISCV_SUB6, first
|
| H A D | test_sub64.S | 22 .reloc sub64, R_RISCV_ADD64, second 23 .reloc sub64, R_RISCV_SUB64, first
|
| /linux/arch/x86/boot/compressed/ |
| H A D | misc.c | 201 int *reloc; in handle_relocations() local 252 for (reloc = output + output_len - sizeof(*reloc); *reloc; reloc--) { in handle_relocations() 253 long extended = *reloc; in handle_relocations() 263 for (reloc--; *reloc; reloc--) { in handle_relocations() 264 long extended = *reloc; in handle_relocations()
|
| /linux/tools/objtool/arch/powerpc/ |
| H A D | special.c | 10 struct reloc *reloc) in arch_support_alt_relocation() argument 15 struct reloc *arch_find_switch_table(struct objtool_file *file, in arch_find_switch_table()
|
| /linux/arch/parisc/kernel/ |
| H A D | kexec.c | 76 void (*reloc)(unsigned long head, in machine_kexec() local 89 reloc = (void *)&desc; in machine_kexec() 92 reloc = (void *)virt; in machine_kexec() 107 reloc(image->head & PAGE_MASK, image->start, phys); in machine_kexec()
|
| /linux/scripts/ |
| H A D | check_extable.sh | 42 eval $(echo $reloc | sed 's/\([^+]\+\)+\?\(0x[0-9a-f]\+\)\?/symbol="\1"; symbol_offset="\2"/') 109 for reloc in ${suspicious_relocs}; do 112 find_symbol_and_offset_from_reloc ${reloc}
|
| /linux/fs/ |
| H A D | binfmt_flat.c | 350 ptr = (unsigned long __user *)(current->mm->start_code + r.reloc.offset); in old_reloc() 352 ptr = (unsigned long __user *)(current->mm->start_data + r.reloc.offset); in old_reloc() 358 r.reloc.offset, ptr, val, segment[r.reloc.type]); in old_reloc() 360 switch (r.reloc.type) { in old_reloc() 371 pr_err("Unknown relocation type=%x\n", r.reloc.type); in old_reloc() 413 __be32 __user *reloc; in load_flat_file() local 586 reloc = (__be32 __user *) in load_flat_file() 612 reloc = (__be32 __user *) in load_flat_file() 783 if (get_user(tmp, reloc + i)) in load_flat_file() 826 if (get_user(relval, reloc + i)) in load_flat_file()
|
| /linux/tools/perf/util/ |
| H A D | map.h | 29 u64 reloc; in DECLARE_RC_STRUCT() 68 return RC_CHK_ACCESS(map)->reloc; in map__reloc() 284 static inline void map__set_reloc(struct map *map, u64 reloc) 286 RC_CHK_ACCESS(map)->reloc = reloc; in map__set_reloc() 30 u64 reloc; DECLARE_RC_STRUCT() local 285 map__set_reloc(struct map * map,u64 reloc) map__set_reloc() argument
|
| /linux/drivers/gpu/drm/i915/gt/ |
| H A D | intel_renderstate.h | 18 const u32 *reloc; member 25 .reloc = gen ## _g ## _null_state_relocs, \
|