diff options
author | Chris Johns <chrisj@rtems.org> | 2017-03-28 17:23:05 +1100 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2017-04-04 13:26:01 +1000 |
commit | d2e31f70c12f6363cef79ffad781df6ec0acdfb5 (patch) | |
tree | 3ebf30b9233ccfbff397ef245f3b74f1f2bd69dd /cpukit/libdl/rtl-unwind.h | |
parent | dosfs: Fix file name search (diff) | |
download | rtems-d2e31f70c12f6363cef79ffad781df6ec0acdfb5.tar.bz2 |
libdl: Back port C++ exception throw and catch from 4.12.
Closes #2956.
Diffstat (limited to 'cpukit/libdl/rtl-unwind.h')
-rw-r--r-- | cpukit/libdl/rtl-unwind.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/cpukit/libdl/rtl-unwind.h b/cpukit/libdl/rtl-unwind.h new file mode 100644 index 0000000000..f88787e1ba --- /dev/null +++ b/cpukit/libdl/rtl-unwind.h @@ -0,0 +1,63 @@ +/* + * COPYRIGHT (c) 2016 Chris Johns <chrisj@rtems.org> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ +/** + * @file + * + * @ingroup rtems_rtl + * + * @brief RTEMS Run-Time Linker Unwind Support. + */ + +#if !defined (_RTEMS_RTL_UNWIND_H_) +#define _RTEMS_RTL_UNWIND_H_ + +#include "rtl-elf.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * Architecture specific handler to check if a section contains exception + * handler data.. + * + * @param obj The object file. + * @param name The section's name. + * @param uint32 flags The object file's flags. + * @retval true The section contains unwind information. + * @retval false The section does not contain unwind information. + */ +bool rtems_rtl_elf_unwind_parse (const rtems_rtl_obj_t* obj, + const char* name, + uint32_t flags); + +/** + * Architecture specific handler to add an object file's unwind information to + * the base image. + * + * @param obj The object file. + * @retval true The unwind information has been registered. + * @retval false The unwind information could not be registered. + */ +bool rtems_rtl_elf_unwind_register (rtems_rtl_obj_t* obj); + +/** + * Architecture specific handler to remove an object file's unwind information + * from the base image. + * + * @param obj The object file. + * @retval true The unwind information has been deregistered. + * @retval false The unwind information could not be deregistered. + */ +bool rtems_rtl_elf_unwind_deregister (rtems_rtl_obj_t* obj); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif |