RTEMS  5.0.0
rtl-unwind-dw2.h
Go to the documentation of this file.
1 /*
2  * COPYRIGHT (c) 2016, 2018 Chris Johns <chrisj@rtems.org>
3  *
4  * The license and distribution terms for this file may be
5  * found in the file LICENSE in this distribution or at
6  * http://www.rtems.org/license/LICENSE.
7  */
16 #if !defined (_RTEMS_RTL_UNWIND_DW2_H_)
17 #define _RTEMS_RTL_UNWIND_DW2_H_
18 
19 #include "rtl-elf.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif /* __cplusplus */
24 
25 #if __SIZEOF_LONG__ >= __SIZEOF_POINTER__
26  typedef long rtems_rtl_elf_unwind_dw2_sleb128;
27  typedef unsigned long rtems_rtl_elf_unwind_dw2_uleb128;
28 #elif __SIZEOF_LONG_LONG__ >= __SIZEOF_POINTER__
29  typedef long long rtems_rtl_elf_unwind_dw2_sleb128;
30  typedef unsigned long long rtems_rtl_elf_unwind_dw2_uleb128;
31 #else
32  #error No DW2 type available.
33 #endif
34 
46  const char* name,
47  uint32_t flags);
48 
58 
68 
72 const uint8_t* rtems_rtl_elf_unwind_dw2_read_uleb128 (const uint8_t* data,
73  rtems_rtl_elf_unwind_dw2_uleb128* val);
74 const uint8_t* rtems_rtl_elf_unwind_dw2_read_sleb128 (const uint8_t* data,
75  rtems_rtl_elf_unwind_dw2_sleb128* val);
76 
77 bool rtems_rtl_elf_unwind_dw2_relocate (const Elf_Addr* where, Elf_Word value, Elf_Word mask);
78 
79 #ifdef __cplusplus
80 }
81 #endif /* __cplusplus */
82 
83 #endif
bool rtems_rtl_elf_unwind_dw2_parse(const rtems_rtl_obj *obj, const char *name, uint32_t flags)
Definition: rtl-unwind-dw2.c:38
Definition: rtl-obj.h:183
RTEMS Run-Time Linker ELF Headers.
const uint8_t * rtems_rtl_elf_unwind_dw2_read_uleb128(const uint8_t *data, rtems_rtl_elf_unwind_dw2_uleb128 *val)
bool rtems_rtl_elf_unwind_dw2_register(const rtems_rtl_obj *obj)
Definition: rtl-unwind-dw2.c:49
bool rtems_rtl_elf_unwind_dw2_deregister(const rtems_rtl_obj *obj)
Definition: rtl-unwind-dw2.c:61