Lines Matching refs:fde
350 struct dwarf_fde *fde = NULL; in dwarf_lookup_fde() local
369 fde = fde_tmp; in dwarf_lookup_fde()
379 return fde; in dwarf_lookup_fde()
399 struct dwarf_fde *fde, in dwarf_cfa_execute_insns() argument
579 struct dwarf_fde *fde; in dwarf_unwind_stack() local
634 fde = dwarf_lookup_fde(pc); in dwarf_unwind_stack()
635 if (!fde) { in dwarf_unwind_stack()
654 cie = dwarf_lookup_cie(fde->cie_pointer); in dwarf_unwind_stack()
656 frame->pc = fde->initial_location; in dwarf_unwind_stack()
660 cie->instructions_end, cie, fde, in dwarf_unwind_stack()
664 dwarf_cfa_execute_insns(fde->instructions, fde->end, cie, in dwarf_unwind_stack()
665 fde, frame, pc); in dwarf_unwind_stack()
871 struct dwarf_fde *fde; in dwarf_parse_fde() local
877 fde = kzalloc(sizeof(*fde), GFP_KERNEL); in dwarf_parse_fde()
878 if (!fde) in dwarf_parse_fde()
881 fde->length = len; in dwarf_parse_fde()
887 fde->cie_pointer = (unsigned long)(p - entry_type - 4); in dwarf_parse_fde()
889 cie = dwarf_lookup_cie(fde->cie_pointer); in dwarf_parse_fde()
890 fde->cie = cie; in dwarf_parse_fde()
893 count = dwarf_read_encoded_value(p, &fde->initial_location, in dwarf_parse_fde()
896 count = dwarf_read_addr(p, &fde->initial_location); in dwarf_parse_fde()
901 count = dwarf_read_encoded_value(p, &fde->address_range, in dwarf_parse_fde()
904 count = dwarf_read_addr(p, &fde->address_range); in dwarf_parse_fde()
908 if (fde->cie->flags & DWARF_CIE_Z_AUGMENTATION) { in dwarf_parse_fde()
915 fde->instructions = p; in dwarf_parse_fde()
916 fde->end = end; in dwarf_parse_fde()
928 start = fde->initial_location; in dwarf_parse_fde()
929 end = fde->initial_location + fde->address_range; in dwarf_parse_fde()
944 rb_link_node(&fde->node, parent, rb_node); in dwarf_parse_fde()
945 rb_insert_color(&fde->node, &fde_root); in dwarf_parse_fde()
949 list_add_tail(&fde->link, &mod->arch.fde_list); in dwarf_parse_fde()
996 struct dwarf_fde *fde, *next_fde; in dwarf_unwinder_cleanup() local
1004 rbtree_postorder_for_each_entry_safe(fde, next_fde, &fde_root, node) in dwarf_unwinder_cleanup()
1005 kfree(fde); in dwarf_unwinder_cleanup()
1132 struct dwarf_fde *fde, *ftmp; in module_dwarf_cleanup() local
1148 list_for_each_entry_safe(fde, ftmp, &mod->arch.fde_list, link) { in module_dwarf_cleanup()
1149 list_del(&fde->link); in module_dwarf_cleanup()
1150 rb_erase(&fde->node, &fde_root); in module_dwarf_cleanup()
1151 kfree(fde); in module_dwarf_cleanup()