mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-29 10:17:38 +01:00
Remove PROTECTED visibility
This only works on bfd ld, not lld or gold.
This commit is contained in:
parent
d784623beb
commit
304f9ea971
185 changed files with 232 additions and 235 deletions
|
@ -40,11 +40,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
# if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ > 2)
|
# if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ > 2)
|
||||||
# define ALWAYS_INLINE inline __attribute__((always_inline))
|
# define ALWAYS_INLINE inline __attribute__((always_inline))
|
||||||
# define HIDDEN __attribute__((visibility ("hidden")))
|
# define HIDDEN __attribute__((visibility ("hidden")))
|
||||||
# define PROTECTED __attribute__((visibility ("protected")))
|
|
||||||
# else
|
# else
|
||||||
# define ALWAYS_INLINE
|
# define ALWAYS_INLINE
|
||||||
# define HIDDEN
|
# define HIDDEN
|
||||||
# define PROTECTED
|
|
||||||
# endif
|
# endif
|
||||||
# define WEAK __attribute__((weak))
|
# define WEAK __attribute__((weak))
|
||||||
# if (__GNUC__ >= 3)
|
# if (__GNUC__ >= 3)
|
||||||
|
@ -63,7 +61,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
# define NORETURN
|
# define NORETURN
|
||||||
# define ALIAS(name)
|
# define ALIAS(name)
|
||||||
# define HIDDEN
|
# define HIDDEN
|
||||||
# define PROTECTED
|
|
||||||
# define WEAK
|
# define WEAK
|
||||||
# define likely(x) (x)
|
# define likely(x) (x)
|
||||||
# define unlikely(x) (x)
|
# define unlikely(x) (x)
|
||||||
|
|
|
@ -246,7 +246,7 @@ struct ia64_global_unwind_state
|
||||||
/* This can't be an UNW_ARCH_OBJ() because we need separate
|
/* This can't be an UNW_ARCH_OBJ() because we need separate
|
||||||
unw.initialized flags for the local-only and generic versions of
|
unw.initialized flags for the local-only and generic versions of
|
||||||
the library. Also, if we wanted to have a single, shared global
|
the library. Also, if we wanted to have a single, shared global
|
||||||
data structure, we couldn't declare "unw" as HIDDEN/PROTECTED. */
|
data structure, we couldn't declare "unw" as HIDDEN. */
|
||||||
#define unw UNW_OBJ(data)
|
#define unw UNW_OBJ(data)
|
||||||
|
|
||||||
extern void tdep_init (void);
|
extern void tdep_init (void);
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_apply_reg_state (unw_cursor_t *cursor,
|
unw_apply_reg_state (unw_cursor_t *cursor,
|
||||||
void *reg_states_data)
|
void *reg_states_data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t
|
unw_addr_space_t
|
||||||
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -24,7 +24,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -32,13 +32,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
/* unw_local_addr_space is a NULL pointer in this case. */
|
/* unw_local_addr_space is a NULL pointer in this case. */
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space;
|
unw_addr_space_t unw_local_addr_space;
|
||||||
|
|
||||||
#else /* !UNW_REMOTE_ONLY */
|
#else /* !UNW_REMOTE_ONLY */
|
||||||
|
|
||||||
static struct unw_addr_space local_addr_space;
|
static struct unw_addr_space local_addr_space;
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
||||||
|
|
||||||
static inline void *
|
static inline void *
|
||||||
uc_addr (ucontext_t *uc, int reg)
|
uc_addr (ucontext_t *uc, int reg)
|
||||||
|
|
|
@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
||||||
{
|
{
|
||||||
return -UNW_EINVAL;
|
return -UNW_EINVAL;
|
||||||
|
@ -52,13 +52,13 @@ unw_init_local_common (unw_cursor_t *cursor, unw_context_t *uc, unsigned use_pre
|
||||||
return common_init (c, use_prev_instr);
|
return common_init (c, use_prev_instr);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
||||||
{
|
{
|
||||||
return unw_init_local_common(cursor, uc, 1);
|
return unw_init_local_common(cursor, uc, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local2 (unw_cursor_t *cursor, ucontext_t *uc, int flag)
|
unw_init_local2 (unw_cursor_t *cursor, ucontext_t *uc, int flag)
|
||||||
{
|
{
|
||||||
if (!flag)
|
if (!flag)
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -31,7 +31,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
d4000001 svc #0x0
|
d4000001 svc #0x0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_signal_frame (unw_cursor_t *cursor)
|
unw_is_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_reg_states_iterate (unw_cursor_t *cursor,
|
unw_reg_states_iterate (unw_cursor_t *cursor,
|
||||||
unw_reg_states_callback cb, void *token)
|
unw_reg_states_callback cb, void *token)
|
||||||
{
|
{
|
||||||
|
|
|
@ -176,7 +176,7 @@ establish_machine_state (struct cursor *c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_resume (unw_cursor_t *cursor)
|
unw_resume (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -51,7 +51,7 @@ is_plt_entry (struct dwarf_cursor *c)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_handle_signal_frame (unw_cursor_t *cursor)
|
unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
@ -130,7 +130,7 @@ unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_step (unw_cursor_t *cursor)
|
unw_step (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_fpreg (int regnum)
|
unw_is_fpreg (int regnum)
|
||||||
{
|
{
|
||||||
return (regnum >= UNW_AARCH64_V0 && regnum <= UNW_AARCH64_V31);
|
return (regnum >= UNW_AARCH64_V0 && regnum <= UNW_AARCH64_V31);
|
||||||
|
|
|
@ -96,7 +96,7 @@ static const char *const regname[] =
|
||||||
[UNW_AARCH64_FPCR] = "fpcr",
|
[UNW_AARCH64_FPCR] = "fpcr",
|
||||||
};
|
};
|
||||||
|
|
||||||
PROTECTED const char *
|
const char *
|
||||||
unw_regname (unw_regnum_t reg)
|
unw_regname (unw_regnum_t reg)
|
||||||
{
|
{
|
||||||
if (reg < (unw_regnum_t) ARRAY_SIZE (regname) && regname[reg] != NULL)
|
if (reg < (unw_regnum_t) ARRAY_SIZE (regname) && regname[reg] != NULL)
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_apply_reg_state (unw_cursor_t *cursor,
|
unw_apply_reg_state (unw_cursor_t *cursor,
|
||||||
void *reg_states_data)
|
void *reg_states_data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t
|
unw_addr_space_t
|
||||||
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -381,7 +381,7 @@ arm_exidx_extract (struct dwarf_cursor *c, uint8_t *buf)
|
||||||
return nbuf;
|
return nbuf;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
arm_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
arm_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
||||||
unw_dyn_info_t *di, unw_proc_info_t *pi,
|
unw_dyn_info_t *di, unw_proc_info_t *pi,
|
||||||
int need_unwind_info, void *arg)
|
int need_unwind_info, void *arg)
|
||||||
|
@ -444,7 +444,7 @@ arm_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
tdep_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
tdep_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
||||||
unw_dyn_info_t *di, unw_proc_info_t *pi,
|
unw_dyn_info_t *di, unw_proc_info_t *pi,
|
||||||
int need_unwind_info, void *arg)
|
int need_unwind_info, void *arg)
|
||||||
|
|
|
@ -24,7 +24,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -24,7 +24,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -30,13 +30,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
/* unw_local_addr_space is a NULL pointer in this case. */
|
/* unw_local_addr_space is a NULL pointer in this case. */
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space;
|
unw_addr_space_t unw_local_addr_space;
|
||||||
|
|
||||||
#else /* !UNW_REMOTE_ONLY */
|
#else /* !UNW_REMOTE_ONLY */
|
||||||
|
|
||||||
static struct unw_addr_space local_addr_space;
|
static struct unw_addr_space local_addr_space;
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
||||||
|
|
||||||
static inline void *
|
static inline void *
|
||||||
uc_addr (unw_tdep_context_t *uc, int reg)
|
uc_addr (unw_tdep_context_t *uc, int reg)
|
||||||
|
|
|
@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
||||||
{
|
{
|
||||||
return -UNW_EINVAL;
|
return -UNW_EINVAL;
|
||||||
|
@ -52,13 +52,13 @@ unw_init_local_common (unw_cursor_t *cursor, unw_context_t *uc, unsigned use_pre
|
||||||
return common_init (c, use_prev_instr);
|
return common_init (c, use_prev_instr);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
||||||
{
|
{
|
||||||
return unw_init_local_common(cursor, uc, 1);
|
return unw_init_local_common(cursor, uc, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local2 (unw_cursor_t *cursor, unw_context_t *uc, int flag)
|
unw_init_local2 (unw_cursor_t *cursor, unw_context_t *uc, int flag)
|
||||||
{
|
{
|
||||||
if (!flag)
|
if (!flag)
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -34,7 +34,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "offsets.h"
|
#include "offsets.h"
|
||||||
#include "ex_tables.h"
|
#include "ex_tables.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_handle_signal_frame (unw_cursor_t *cursor)
|
unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
@ -91,7 +91,7 @@ unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
|
|
||||||
/* Returns 1 in case of a non-RT signal frame and 2 in case of a RT signal
|
/* Returns 1 in case of a non-RT signal frame and 2 in case of a RT signal
|
||||||
frame. */
|
frame. */
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_signal_frame (unw_cursor_t *cursor)
|
unw_is_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -29,7 +29,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
#include "offsets.h"
|
#include "offsets.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_handle_signal_frame (unw_cursor_t *cursor)
|
unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
@ -149,7 +149,7 @@ unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
|
|
||||||
/* Returns 1 in case of a non-RT signal frame and 2 in case of a RT signal
|
/* Returns 1 in case of a non-RT signal frame and 2 in case of a RT signal
|
||||||
frame. */
|
frame. */
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_signal_frame (unw_cursor_t *cursor)
|
unw_is_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -29,13 +29,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
#include "offsets.h"
|
#include "offsets.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_handle_signal_frame (unw_cursor_t *cursor)
|
unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
return -UNW_EUNSPEC;
|
return -UNW_EUNSPEC;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_signal_frame (unw_cursor_t *cursor)
|
unw_is_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
#if defined(__QNX__)
|
#if defined(__QNX__)
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_reg_states_iterate (unw_cursor_t *cursor,
|
unw_reg_states_iterate (unw_cursor_t *cursor,
|
||||||
unw_reg_states_callback cb, void *token)
|
unw_reg_states_callback cb, void *token)
|
||||||
{
|
{
|
||||||
|
|
|
@ -132,7 +132,7 @@ establish_machine_state (struct cursor *c)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_resume (unw_cursor_t *cursor)
|
unw_resume (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -82,7 +82,7 @@ arm_exidx_step (struct cursor *c)
|
||||||
return (c->dwarf.ip == 0) ? 0 : 1;
|
return (c->dwarf.ip == 0) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_step (unw_cursor_t *cursor)
|
unw_step (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/* FIXME: I'm not sure if libunwind's GP/FP register distinction is very useful
|
/* FIXME: I'm not sure if libunwind's GP/FP register distinction is very useful
|
||||||
on ARM. Count all the FP or coprocessor registers we know about for now. */
|
on ARM. Count all the FP or coprocessor registers we know about for now. */
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_fpreg (int regnum)
|
unw_is_fpreg (int regnum)
|
||||||
{
|
{
|
||||||
return ((regnum >= UNW_ARM_S0 && regnum <= UNW_ARM_S31)
|
return ((regnum >= UNW_ARM_S0 && regnum <= UNW_ARM_S31)
|
||||||
|
|
|
@ -80,7 +80,7 @@ static const char *regname[] =
|
||||||
"d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31",
|
"d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31",
|
||||||
};
|
};
|
||||||
|
|
||||||
PROTECTED const char *
|
const char *
|
||||||
unw_regname (unw_regnum_t reg)
|
unw_regname (unw_regnum_t reg)
|
||||||
{
|
{
|
||||||
if (reg < (unw_regnum_t) ARRAY_SIZE (regname))
|
if (reg < (unw_regnum_t) ARRAY_SIZE (regname))
|
||||||
|
|
|
@ -23,7 +23,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "_UCD_internal.h"
|
#include "_UCD_internal.h"
|
||||||
|
|
||||||
PROTECTED unw_accessors_t _UCD_accessors =
|
unw_accessors_t _UCD_accessors =
|
||||||
{
|
{
|
||||||
.find_proc_info = _UCD_find_proc_info,
|
.find_proc_info = _UCD_find_proc_info,
|
||||||
.put_unwind_info = _UCD_put_unwind_info,
|
.put_unwind_info = _UCD_put_unwind_info,
|
||||||
|
|
|
@ -265,7 +265,7 @@ debug_frame_tab_compare (const void *a, const void *b)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
dwarf_find_debug_frame (int found, unw_dyn_info_t *di_debug, unw_word_t ip,
|
dwarf_find_debug_frame (int found, unw_dyn_info_t *di_debug, unw_word_t ip,
|
||||||
unw_word_t segbase, const char* obj_name,
|
unw_word_t segbase, const char* obj_name,
|
||||||
unw_word_t start, unw_word_t end)
|
unw_word_t start, unw_word_t end)
|
||||||
|
@ -796,7 +796,7 @@ static int is_remote_table(int format)
|
||||||
format == UNW_INFO_FORMAT_IP_OFFSET);
|
format == UNW_INFO_FORMAT_IP_OFFSET);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
dwarf_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
dwarf_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
||||||
unw_dyn_info_t *di, unw_proc_info_t *pi,
|
unw_dyn_info_t *di, unw_proc_info_t *pi,
|
||||||
int need_unwind_info, void *arg)
|
int need_unwind_info, void *arg)
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_apply_reg_state (unw_cursor_t *cursor,
|
unw_apply_reg_state (unw_cursor_t *cursor,
|
||||||
void *reg_states_data)
|
void *reg_states_data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t
|
unw_addr_space_t
|
||||||
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
||||||
{
|
{
|
||||||
/* struct cursor *c = (struct cursor *) cursor; */
|
/* struct cursor *c = (struct cursor *) cursor; */
|
||||||
|
|
|
@ -32,13 +32,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
/* unw_local_addr_space is a NULL pointer in this case. */
|
/* unw_local_addr_space is a NULL pointer in this case. */
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space;
|
unw_addr_space_t unw_local_addr_space;
|
||||||
|
|
||||||
#else /* !UNW_REMOTE_ONLY */
|
#else /* !UNW_REMOTE_ONLY */
|
||||||
|
|
||||||
static struct unw_addr_space local_addr_space;
|
static struct unw_addr_space local_addr_space;
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
||||||
|
|
||||||
static inline void *
|
static inline void *
|
||||||
uc_addr (ucontext_t *uc, int reg)
|
uc_addr (ucontext_t *uc, int reg)
|
||||||
|
|
|
@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, ucontext_t *uc)
|
unw_init_local (unw_cursor_t *cursor, ucontext_t *uc)
|
||||||
{
|
{
|
||||||
return -UNW_EINVAL;
|
return -UNW_EINVAL;
|
||||||
|
@ -51,13 +51,13 @@ unw_init_local_common (unw_cursor_t *cursor, ucontext_t *uc, unsigned use_prev_i
|
||||||
return common_init (c, use_prev_instr);
|
return common_init (c, use_prev_instr);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, ucontext_t *uc)
|
unw_init_local (unw_cursor_t *cursor, ucontext_t *uc)
|
||||||
{
|
{
|
||||||
return unw_init_local_common(cursor, uc, 1);
|
return unw_init_local_common(cursor, uc, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local2 (unw_cursor_t *cursor, ucontext_t *uc, int flag)
|
unw_init_local2 (unw_cursor_t *cursor, ucontext_t *uc, int flag)
|
||||||
{
|
{
|
||||||
if (!flag)
|
if (!flag)
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_signal_frame (unw_cursor_t *cursor)
|
unw_is_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_reg_states_iterate (unw_cursor_t *cursor,
|
unw_reg_states_iterate (unw_cursor_t *cursor,
|
||||||
unw_reg_states_callback cb, void *token)
|
unw_reg_states_callback cb, void *token)
|
||||||
{
|
{
|
||||||
|
|
|
@ -121,7 +121,7 @@ establish_machine_state (struct cursor *c)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_resume (unw_cursor_t *cursor)
|
unw_resume (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
#include "offsets.h"
|
#include "offsets.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_step (unw_cursor_t *cursor)
|
unw_step (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED unw_accessors_t *
|
unw_accessors_t *
|
||||||
unw_get_accessors (unw_addr_space_t as)
|
unw_get_accessors (unw_addr_space_t as)
|
||||||
{
|
{
|
||||||
if (!tdep_init_done)
|
if (!tdep_init_done)
|
||||||
|
|
|
@ -40,7 +40,7 @@ static const char *regname[] =
|
||||||
"cfa"
|
"cfa"
|
||||||
};
|
};
|
||||||
|
|
||||||
PROTECTED const char *
|
const char *
|
||||||
unw_regname (unw_regnum_t reg)
|
unw_regname (unw_regnum_t reg)
|
||||||
{
|
{
|
||||||
if (reg < (unw_regnum_t) ARRAY_SIZE (regname))
|
if (reg < (unw_regnum_t) ARRAY_SIZE (regname))
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_apply_reg_state (unw_cursor_t *cursor,
|
unw_apply_reg_state (unw_cursor_t *cursor,
|
||||||
void *reg_states_data)
|
void *reg_states_data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t
|
unw_addr_space_t
|
||||||
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -30,7 +30,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "offsets.h"
|
#include "offsets.h"
|
||||||
#include "regs.h"
|
#include "regs.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -33,13 +33,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
/* unw_local_addr_space is a NULL pointer in this case. */
|
/* unw_local_addr_space is a NULL pointer in this case. */
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space;
|
unw_addr_space_t unw_local_addr_space;
|
||||||
|
|
||||||
#else /* !UNW_REMOTE_ONLY */
|
#else /* !UNW_REMOTE_ONLY */
|
||||||
|
|
||||||
static struct unw_addr_space local_addr_space;
|
static struct unw_addr_space local_addr_space;
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
||||||
|
|
||||||
#ifdef HAVE_SYS_UC_ACCESS_H
|
#ifdef HAVE_SYS_UC_ACCESS_H
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
||||||
{
|
{
|
||||||
return -UNW_EINVAL;
|
return -UNW_EINVAL;
|
||||||
|
@ -76,7 +76,7 @@ get_initial_stack_pointers (struct cursor *c, unw_context_t *uc,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_signal_frame (unw_cursor_t *cursor)
|
unw_is_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_reg_states_iterate (unw_cursor_t *cursor,
|
unw_reg_states_iterate (unw_cursor_t *cursor,
|
||||||
unw_reg_states_callback cb, void *token)
|
unw_reg_states_callback cb, void *token)
|
||||||
{
|
{
|
||||||
|
|
|
@ -259,7 +259,7 @@ remote_install_cursor (struct cursor *c)
|
||||||
|
|
||||||
#endif /* !UNW_LOCAL_ONLY */
|
#endif /* !UNW_LOCAL_ONLY */
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_resume (unw_cursor_t *cursor)
|
unw_resume (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -342,7 +342,7 @@ update_frame_state (struct cursor *c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_step (unw_cursor_t *cursor)
|
unw_step (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -136,7 +136,7 @@ tdep_put_unwind_info (unw_addr_space_t as, unw_proc_info_t *pi, void *arg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED unw_word_t
|
unw_word_t
|
||||||
_Uia64_find_dyn_list (unw_addr_space_t as, unw_dyn_info_t *di, void *arg)
|
_Uia64_find_dyn_list (unw_addr_space_t as, unw_dyn_info_t *di, void *arg)
|
||||||
{
|
{
|
||||||
unw_word_t hdr_addr, info_addr, hdr, directives, pers, cookie, off;
|
unw_word_t hdr_addr, info_addr, hdr, directives, pers, cookie, off;
|
||||||
|
@ -247,7 +247,7 @@ lookup (struct ia64_table_entry *table, size_t table_size, unw_word_t rel_ip)
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_search_ia64_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
unw_search_ia64_unwind_table (unw_addr_space_t as, unw_word_t ip,
|
||||||
unw_dyn_info_t *di, unw_proc_info_t *pi,
|
unw_dyn_info_t *di, unw_proc_info_t *pi,
|
||||||
int need_unwind_info, void *arg)
|
int need_unwind_info, void *arg)
|
||||||
|
@ -440,7 +440,7 @@ get_kernel_table (unw_dyn_info_t *di)
|
||||||
# ifndef UNW_LOCAL_ONLY
|
# ifndef UNW_LOCAL_ONLY
|
||||||
|
|
||||||
/* This is exported for the benefit of libunwind-ptrace.a. */
|
/* This is exported for the benefit of libunwind-ptrace.a. */
|
||||||
PROTECTED int
|
int
|
||||||
_Uia64_get_kernel_table (unw_dyn_info_t *di)
|
_Uia64_get_kernel_table (unw_dyn_info_t *di)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
|
@ -179,7 +179,7 @@ purpose. */
|
||||||
|
|
||||||
#define NREGS ((int) (sizeof (regname_str) - 1) / regname_len)
|
#define NREGS ((int) (sizeof (regname_str) - 1) / regname_len)
|
||||||
|
|
||||||
PROTECTED const char *
|
const char *
|
||||||
unw_regname (unw_regnum_t reg)
|
unw_regname (unw_regnum_t reg)
|
||||||
{
|
{
|
||||||
if (reg < NREGS)
|
if (reg < NREGS)
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED void
|
void
|
||||||
unw_destroy_addr_space (unw_addr_space_t as)
|
unw_destroy_addr_space (unw_addr_space_t as)
|
||||||
{
|
{
|
||||||
#ifndef UNW_LOCAL_ONLY
|
#ifndef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED unw_accessors_t *
|
unw_accessors_t *
|
||||||
unw_get_accessors (unw_addr_space_t as)
|
unw_get_accessors (unw_addr_space_t as)
|
||||||
{
|
{
|
||||||
if (!tdep_init_done)
|
if (!tdep_init_done)
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_fpreg (unw_cursor_t *cursor, int regnum, unw_fpreg_t *valp)
|
unw_get_fpreg (unw_cursor_t *cursor, int regnum, unw_fpreg_t *valp)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_proc_info_by_ip (unw_addr_space_t as, unw_word_t ip,
|
unw_get_proc_info_by_ip (unw_addr_space_t as, unw_word_t ip,
|
||||||
unw_proc_info_t *pi, void *as_arg)
|
unw_proc_info_t *pi, void *as_arg)
|
||||||
{
|
{
|
||||||
|
|
|
@ -95,7 +95,7 @@ get_proc_name (unw_addr_space_t as, unw_word_t ip,
|
||||||
return -UNW_ENOINFO;
|
return -UNW_ENOINFO;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_proc_name (unw_cursor_t *cursor, char *buf, size_t buf_len,
|
unw_get_proc_name (unw_cursor_t *cursor, char *buf, size_t buf_len,
|
||||||
unw_word_t *offp)
|
unw_word_t *offp)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_reg (unw_cursor_t *cursor, int regnum, unw_word_t *valp)
|
unw_get_reg (unw_cursor_t *cursor, int regnum, unw_word_t *valp)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_set_cache_size (unw_addr_space_t as, size_t size, int flag)
|
unw_set_cache_size (unw_addr_space_t as, size_t size, int flag)
|
||||||
{
|
{
|
||||||
size_t power = 1;
|
size_t power = 1;
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_set_caching_policy (unw_addr_space_t as, unw_caching_policy_t policy)
|
unw_set_caching_policy (unw_addr_space_t as, unw_caching_policy_t policy)
|
||||||
{
|
{
|
||||||
if (!tdep_init_done)
|
if (!tdep_init_done)
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_set_fpreg (unw_cursor_t *cursor, int regnum, unw_fpreg_t val)
|
unw_set_fpreg (unw_cursor_t *cursor, int regnum, unw_fpreg_t val)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_set_reg (unw_cursor_t *cursor, int regnum, unw_word_t valp)
|
unw_set_reg (unw_cursor_t *cursor, int regnum, unw_word_t valp)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
|
HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
|
||||||
|
|
||||||
PROTECTED unw_word_t
|
unw_word_t
|
||||||
_U_dyn_info_list_addr (void)
|
_U_dyn_info_list_addr (void)
|
||||||
{
|
{
|
||||||
return (unw_word_t) (uintptr_t) &_U_dyn_info_list;
|
return (unw_word_t) (uintptr_t) &_U_dyn_info_list;
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
PROTECTED void
|
void
|
||||||
unw_flush_cache (unw_addr_space_t as, unw_word_t lo, unw_word_t hi)
|
unw_flush_cache (unw_addr_space_t as, unw_word_t lo, unw_word_t hi)
|
||||||
{
|
{
|
||||||
#if !UNW_TARGET_IA64
|
#if !UNW_TARGET_IA64
|
||||||
|
|
|
@ -32,7 +32,7 @@ static const char rcsid[] UNUSED =
|
||||||
|
|
||||||
#if UNW_DEBUG
|
#if UNW_DEBUG
|
||||||
|
|
||||||
/* Must not be declared HIDDEN/PROTECTED because libunwind.so and
|
/* Must not be declared HIDDEN because libunwind.so and
|
||||||
libunwind-PLATFORM.so will both define their own copies of this
|
libunwind-PLATFORM.so will both define their own copies of this
|
||||||
variable and we want to use only one or the other when both
|
variable and we want to use only one or the other when both
|
||||||
libraries are loaded. */
|
libraries are loaded. */
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_apply_reg_state (unw_cursor_t *cursor,
|
unw_apply_reg_state (unw_cursor_t *cursor,
|
||||||
void *reg_states_data)
|
void *reg_states_data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t
|
unw_addr_space_t
|
||||||
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -24,7 +24,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
/* FIXME for MIPS. */
|
/* FIXME for MIPS. */
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -30,13 +30,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
/* unw_local_addr_space is a NULL pointer in this case. */
|
/* unw_local_addr_space is a NULL pointer in this case. */
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space;
|
unw_addr_space_t unw_local_addr_space;
|
||||||
|
|
||||||
#else /* !UNW_REMOTE_ONLY */
|
#else /* !UNW_REMOTE_ONLY */
|
||||||
|
|
||||||
static struct unw_addr_space local_addr_space;
|
static struct unw_addr_space local_addr_space;
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
||||||
|
|
||||||
/* Return the address of the 64-bit slot in UC for REG (even for o32,
|
/* Return the address of the 64-bit slot in UC for REG (even for o32,
|
||||||
where registers are 32-bit, the slots are still 64-bit). */
|
where registers are 32-bit, the slots are still 64-bit). */
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, ucontext_t *uc)
|
unw_init_local (unw_cursor_t *cursor, ucontext_t *uc)
|
||||||
{
|
{
|
||||||
return -UNW_EINVAL;
|
return -UNW_EINVAL;
|
||||||
|
@ -50,13 +50,13 @@ unw_init_local_common(unw_cursor_t *cursor, ucontext_t *uc, unsigned use_prev_in
|
||||||
return common_init (c, use_prev_instr);
|
return common_init (c, use_prev_instr);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local(unw_cursor_t *cursor, ucontext_t *uc)
|
unw_init_local(unw_cursor_t *cursor, ucontext_t *uc)
|
||||||
{
|
{
|
||||||
return unw_init_local_common(cursor, uc, 1);
|
return unw_init_local_common(cursor, uc, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local2 (unw_cursor_t *cursor, ucontext_t *uc, int flag)
|
unw_init_local2 (unw_cursor_t *cursor, ucontext_t *uc, int flag)
|
||||||
{
|
{
|
||||||
if (!flag)
|
if (!flag)
|
||||||
|
|
|
@ -25,7 +25,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_signal_frame (unw_cursor_t *cursor)
|
unw_is_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_reg_states_iterate (unw_cursor_t *cursor,
|
unw_reg_states_iterate (unw_cursor_t *cursor,
|
||||||
unw_reg_states_callback cb, void *token)
|
unw_reg_states_callback cb, void *token)
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,7 +38,7 @@ mips_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
|
||||||
|
|
||||||
#endif /* !UNW_REMOTE_ONLY */
|
#endif /* !UNW_REMOTE_ONLY */
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_resume (unw_cursor_t *cursor)
|
unw_resume (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
return -UNW_EINVAL;
|
return -UNW_EINVAL;
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
#include "offsets.h"
|
#include "offsets.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_handle_signal_frame (unw_cursor_t *cursor)
|
unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
@ -110,7 +110,7 @@ unw_handle_signal_frame (unw_cursor_t *cursor)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_step (unw_cursor_t *cursor)
|
unw_step (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
/* FIXME: I'm not sure if libunwind's GP/FP register distinction is very useful
|
/* FIXME: I'm not sure if libunwind's GP/FP register distinction is very useful
|
||||||
on MIPS. */
|
on MIPS. */
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_fpreg (int regnum)
|
unw_is_fpreg (int regnum)
|
||||||
{
|
{
|
||||||
/* FIXME: Support FP. */
|
/* FIXME: Support FP. */
|
||||||
|
|
|
@ -36,7 +36,7 @@ static const char *regname[] =
|
||||||
"$24", "$25", "$26", "$27", "$28", "$29", "$30", "$31",
|
"$24", "$25", "$26", "$27", "$28", "$29", "$30", "$31",
|
||||||
};
|
};
|
||||||
|
|
||||||
PROTECTED const char *
|
const char *
|
||||||
unw_regname (unw_regnum_t reg)
|
unw_regname (unw_regnum_t reg)
|
||||||
{
|
{
|
||||||
if (reg < (unw_regnum_t) ARRAY_SIZE (regname))
|
if (reg < (unw_regnum_t) ARRAY_SIZE (regname))
|
||||||
|
|
|
@ -88,7 +88,7 @@ get_pid_by_tid(int tid)
|
||||||
return (pid);
|
return (pid);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
||||||
unsigned long *segbase, unsigned long *mapoff, char *path, size_t pathlen)
|
unsigned long *segbase, unsigned long *mapoff, char *path, size_t pathlen)
|
||||||
{
|
{
|
||||||
|
@ -146,7 +146,7 @@ tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
||||||
|
|
||||||
#ifndef UNW_REMOTE_ONLY
|
#ifndef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED void
|
void
|
||||||
tdep_get_exe_image_path (char *path)
|
tdep_get_exe_image_path (char *path)
|
||||||
{
|
{
|
||||||
int mib[4], error;
|
int mib[4], error;
|
||||||
|
|
|
@ -68,7 +68,7 @@ tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
||||||
|
|
||||||
#ifndef UNW_REMOTE_ONLY
|
#ifndef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED void
|
void
|
||||||
tdep_get_exe_image_path (char *path)
|
tdep_get_exe_image_path (char *path)
|
||||||
{
|
{
|
||||||
path[0] = 0; /* XXX */
|
path[0] = 0; /* XXX */
|
||||||
|
|
|
@ -29,7 +29,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "libunwind_i.h"
|
#include "libunwind_i.h"
|
||||||
#include "os-linux.h"
|
#include "os-linux.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
||||||
unsigned long *segbase, unsigned long *mapoff,
|
unsigned long *segbase, unsigned long *mapoff,
|
||||||
char *path, size_t pathlen)
|
char *path, size_t pathlen)
|
||||||
|
@ -64,7 +64,7 @@ tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
||||||
|
|
||||||
#ifndef UNW_REMOTE_ONLY
|
#ifndef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED void
|
void
|
||||||
tdep_get_exe_image_path (char *path)
|
tdep_get_exe_image_path (char *path)
|
||||||
{
|
{
|
||||||
strcpy(path, "/proc/self/exe");
|
strcpy(path, "/proc/self/exe");
|
||||||
|
|
|
@ -53,7 +53,7 @@ static int callback(const struct dl_phdr_info *info, size_t size, void *data)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
||||||
unsigned long *segbase, unsigned long *mapoff,
|
unsigned long *segbase, unsigned long *mapoff,
|
||||||
char *path, size_t pathlen)
|
char *path, size_t pathlen)
|
||||||
|
@ -108,7 +108,7 @@ tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
|
||||||
|
|
||||||
#ifndef UNW_REMOTE_ONLY
|
#ifndef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED void
|
void
|
||||||
tdep_get_exe_image_path (char *path)
|
tdep_get_exe_image_path (char *path)
|
||||||
{
|
{
|
||||||
path[0] = 0; /* XXX */
|
path[0] = 0; /* XXX */
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_apply_reg_state (unw_cursor_t *cursor,
|
unw_apply_reg_state (unw_cursor_t *cursor,
|
||||||
void *reg_states_data)
|
void *reg_states_data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include <libunwind_i.h>
|
#include <libunwind_i.h>
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include <libunwind_i.h>
|
#include <libunwind_i.h>
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
|
||||||
{
|
{
|
||||||
/* XXX: empty stub. */
|
/* XXX: empty stub. */
|
||||||
|
|
|
@ -34,7 +34,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local (unw_cursor_t *cursor, ucontext_t *uc)
|
unw_init_local (unw_cursor_t *cursor, ucontext_t *uc)
|
||||||
{
|
{
|
||||||
/* XXX: empty stub. */
|
/* XXX: empty stub. */
|
||||||
|
@ -62,13 +62,13 @@ unw_init_local_common(unw_cursor_t *cursor, ucontext_t *uc, unsigned use_prev_in
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local(unw_cursor_t *cursor, ucontext_t *uc)
|
unw_init_local(unw_cursor_t *cursor, ucontext_t *uc)
|
||||||
{
|
{
|
||||||
return unw_init_local_common(cursor, uc, 1);
|
return unw_init_local_common(cursor, uc, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_local2 (unw_cursor_t *cursor, ucontext_t *uc, int flag)
|
unw_init_local2 (unw_cursor_t *cursor, ucontext_t *uc, int flag)
|
||||||
{
|
{
|
||||||
if (!flag)
|
if (!flag)
|
||||||
|
|
|
@ -33,7 +33,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#include "../ppc32/init.h"
|
#include "../ppc32/init.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include <libunwind_i.h>
|
#include <libunwind_i.h>
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_is_signal_frame (unw_cursor_t * cursor)
|
unw_is_signal_frame (unw_cursor_t * cursor)
|
||||||
{
|
{
|
||||||
struct cursor *c = (struct cursor *) cursor;
|
struct cursor *c = (struct cursor *) cursor;
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_reg_states_iterate (unw_cursor_t *cursor,
|
unw_reg_states_iterate (unw_cursor_t *cursor,
|
||||||
unw_reg_states_callback cb, void *token)
|
unw_reg_states_callback cb, void *token)
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_apply_reg_state (unw_cursor_t *cursor,
|
unw_apply_reg_state (unw_cursor_t *cursor,
|
||||||
void *reg_states_data)
|
void *reg_states_data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,7 +29,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include <libunwind_i.h>
|
#include <libunwind_i.h>
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t
|
unw_addr_space_t
|
||||||
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
unw_create_addr_space (unw_accessors_t *a, int byte_order)
|
||||||
{
|
{
|
||||||
#ifdef UNW_LOCAL_ONLY
|
#ifdef UNW_LOCAL_ONLY
|
||||||
|
|
|
@ -34,13 +34,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#ifdef UNW_REMOTE_ONLY
|
#ifdef UNW_REMOTE_ONLY
|
||||||
|
|
||||||
/* unw_local_addr_space is a NULL pointer in this case. */
|
/* unw_local_addr_space is a NULL pointer in this case. */
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space;
|
unw_addr_space_t unw_local_addr_space;
|
||||||
|
|
||||||
#else /* !UNW_REMOTE_ONLY */
|
#else /* !UNW_REMOTE_ONLY */
|
||||||
|
|
||||||
static struct unw_addr_space local_addr_space;
|
static struct unw_addr_space local_addr_space;
|
||||||
|
|
||||||
PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
unw_addr_space_t unw_local_addr_space = &local_addr_space;
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
uc_addr (ucontext_t *uc, int reg)
|
uc_addr (ucontext_t *uc, int reg)
|
||||||
|
|
|
@ -27,7 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include "unwind_i.h"
|
#include "unwind_i.h"
|
||||||
|
|
||||||
PROTECTED int
|
int
|
||||||
unw_reg_states_iterate (unw_cursor_t *cursor,
|
unw_reg_states_iterate (unw_cursor_t *cursor,
|
||||||
unw_reg_states_callback cb, void *token)
|
unw_reg_states_callback cb, void *token)
|
||||||
{
|
{
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue