Lines Matching refs:fde
227 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *);
228 static const u32 *__cie_for_fde(const u32 *fde);
232 unsigned long start, fde; member
252 v = e1->fde; in swap_eh_frame_hdr_table_entries()
253 e1->fde = e2->fde; in swap_eh_frame_hdr_table_entries()
254 e2->fde = v; in swap_eh_frame_hdr_table_entries()
263 const u32 *fde; in init_unwind_hdr() local
281 if (tableSize & (sizeof(*fde) - 1)) in init_unwind_hdr()
284 for (fde = table->address, n = 0; in init_unwind_hdr()
285 tableSize > sizeof(*fde) && tableSize - sizeof(*fde) >= *fde; in init_unwind_hdr()
286 tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) { in init_unwind_hdr()
287 const u32 *cie = cie_for_fde(fde, table); in init_unwind_hdr()
298 ptr = (const u8 *)(fde + 2); in init_unwind_hdr()
299 if (!read_pointer(&ptr, (const u8 *)(fde + 1) + *fde, in init_unwind_hdr()
306 (const u8 *)(fde + 1) + *fde); in init_unwind_hdr()
332 for (fde = table->address, tableSize = table->size, n = 0; in init_unwind_hdr()
334 tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) { in init_unwind_hdr()
335 const u32 *cie = __cie_for_fde(fde); in init_unwind_hdr()
337 if (fde[1] == CIE_ID) in init_unwind_hdr()
339 ptr = (const u8 *)(fde + 2); in init_unwind_hdr()
341 (const u8 *)(fde + 1) + in init_unwind_hdr()
342 *fde, in init_unwind_hdr()
344 header->table[n].fde = (unsigned long)fde; in init_unwind_hdr()
504 static const u32 *__cie_for_fde(const u32 *fde) in __cie_for_fde() argument
508 cie = fde + 1 - fde[1] / sizeof(*fde); in __cie_for_fde()
513 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *table) in cie_for_fde() argument
517 if (!*fde || (*fde & (sizeof(*fde) - 1))) in cie_for_fde()
520 if (fde[1] == CIE_ID) in cie_for_fde()
523 if ((fde[1] & (sizeof(*fde) - 1))) in cie_for_fde()
527 cie = __cie_for_fde(fde); in cie_for_fde()
529 if (*cie <= sizeof(*cie) + 4 || *cie >= fde[1] - sizeof(*fde) in cie_for_fde()
902 const u32 *fde = NULL, *cie = NULL; in arc_unwind() local
934 && !(table->size & (sizeof(*fde) - 1))) { in arc_unwind()
983 fde = (void *)read_pointer(&ptr, in arc_unwind()
990 if (fde != NULL) { in arc_unwind()
991 cie = cie_for_fde(fde, table); in arc_unwind()
992 ptr = (const u8 *)(fde + 2); in arc_unwind()
998 (const u8 *)(fde + 1) + *fde, in arc_unwind()
1005 (const u8 *)(fde + in arc_unwind()
1007 *fde, ptrType); in arc_unwind()
1009 fde = NULL; in arc_unwind()
1013 fde = NULL; in arc_unwind()
1082 end = (const u8 *)(fde + 1) + *fde; in arc_unwind()
1088 fde = NULL; in arc_unwind()
1091 if (cie == NULL || fde == NULL) { in arc_unwind()