Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:16

0001 #include <unwind.h>
0002 
0003 #include <rtems/rtl/rtl.h>
0004 #include "rtl-unwind.h"
0005 
0006 typedef unsigned _Unwind_Word __attribute__((__mode__(__word__)));
0007 typedef _Unwind_Word _uw;
0008 
0009 bool
0010 rtems_rtl_elf_unwind_parse (const rtems_rtl_obj* obj,
0011                             const char*          name,
0012                             uint32_t             flags);
0013 
0014 bool
0015 rtems_rtl_elf_unwind_register (rtems_rtl_obj* obj);
0016 
0017 bool
0018 rtems_rtl_elf_unwind_deregister (rtems_rtl_obj* obj);
0019 
0020 /* An exception index table entry.  */
0021 typedef struct __EIT_entry
0022 {
0023   _uw fnoffset;
0024   _uw content;
0025 } __EIT_entry;
0026 
0027 /* The exception index table location in the base module */
0028 extern __EIT_entry __exidx_start;
0029 extern __EIT_entry __exidx_end;
0030 
0031 /*
0032  * A weak reference is in libgcc, provide a real version and provide a way to
0033  * manage loaded modules.
0034  *
0035  * Passed in the return address and a reference to the number of records
0036  * found. We set the start of the exidx data and the number of records.
0037  */
0038 _Unwind_Ptr
0039 __gnu_Unwind_Find_exidx (_Unwind_Ptr return_address,
0040                          int*        nrec) __attribute__ ((__noinline__,
0041                                                            __used__,
0042                                                            __noclone__));
0043 
0044 _Unwind_Ptr
0045 __gnu_Unwind_Find_exidx (_Unwind_Ptr return_address,
0046                          int*        nrec);