Lines Matching refs:fde
228 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *);
229 static const u32 *__cie_for_fde(const u32 *fde);
233 unsigned long start, fde; member
253 v = e1->fde; in swap_eh_frame_hdr_table_entries()
254 e1->fde = e2->fde; in swap_eh_frame_hdr_table_entries()
255 e2->fde = v; in swap_eh_frame_hdr_table_entries()
264 const u32 *fde; in init_unwind_hdr() local
282 if (tableSize & (sizeof(*fde) - 1)) in init_unwind_hdr()
285 for (fde = table->address, n = 0; in init_unwind_hdr()
286 tableSize > sizeof(*fde) && tableSize - sizeof(*fde) >= *fde; in init_unwind_hdr()
287 tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) { in init_unwind_hdr()
288 const u32 *cie = cie_for_fde(fde, table); in init_unwind_hdr()
299 ptr = (const u8 *)(fde + 2); in init_unwind_hdr()
300 if (!read_pointer(&ptr, (const u8 *)(fde + 1) + *fde, in init_unwind_hdr()
307 (const u8 *)(fde + 1) + *fde); in init_unwind_hdr()
333 for (fde = table->address, tableSize = table->size, n = 0; in init_unwind_hdr()
335 tableSize -= sizeof(*fde) + *fde, fde += 1 + *fde / sizeof(*fde)) { in init_unwind_hdr()
336 const u32 *cie = __cie_for_fde(fde); in init_unwind_hdr()
338 if (fde[1] == CIE_ID) in init_unwind_hdr()
340 ptr = (const u8 *)(fde + 2); in init_unwind_hdr()
342 (const u8 *)(fde + 1) + in init_unwind_hdr()
343 *fde, in init_unwind_hdr()
345 header->table[n].fde = (unsigned long)fde; in init_unwind_hdr()
505 static const u32 *__cie_for_fde(const u32 *fde) in __cie_for_fde() argument
509 cie = fde + 1 - fde[1] / sizeof(*fde); in __cie_for_fde()
514 static const u32 *cie_for_fde(const u32 *fde, const struct unwind_table *table) in cie_for_fde() argument
518 if (!*fde || (*fde & (sizeof(*fde) - 1))) in cie_for_fde()
521 if (fde[1] == CIE_ID) in cie_for_fde()
524 if ((fde[1] & (sizeof(*fde) - 1))) in cie_for_fde()
528 cie = __cie_for_fde(fde); in cie_for_fde()
530 if (*cie <= sizeof(*cie) + 4 || *cie >= fde[1] - sizeof(*fde) in cie_for_fde()
903 const u32 *fde = NULL, *cie = NULL; in arc_unwind() local
935 && !(table->size & (sizeof(*fde) - 1))) { in arc_unwind()
984 fde = (void *)read_pointer(&ptr, in arc_unwind()
991 if (fde != NULL) { in arc_unwind()
992 cie = cie_for_fde(fde, table); in arc_unwind()
993 ptr = (const u8 *)(fde + 2); in arc_unwind()
999 (const u8 *)(fde + 1) + *fde, in arc_unwind()
1006 (const u8 *)(fde + in arc_unwind()
1008 *fde, ptrType); in arc_unwind()
1010 fde = NULL; in arc_unwind()
1014 fde = NULL; in arc_unwind()
1083 end = (const u8 *)(fde + 1) + *fde; in arc_unwind()
1089 fde = NULL; in arc_unwind()
1092 if (cie == NULL || fde == NULL) { in arc_unwind()