mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-12 03:28:12 +01:00
Include "rse.h" instead of "ia64/rse.h".
Include "libunwind_i.h" instead of "internal.h" and "tdep.h". Define rbs_cover_and_flush() only for the !UNW_REMOTE_ONLY case. (ia64_is_big_endian): New macro. (ia64_get_abi): Likewise. (ia64_set_abi): Likewise. (ia64_get_abi_marker): Likewise. (Logical change 1.294)
This commit is contained in:
parent
8e6f3c8485
commit
1228462adc
1 changed files with 19 additions and 9 deletions
|
@ -31,9 +31,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
|
|
||||||
#include <libunwind-ia64.h>
|
#include <libunwind-ia64.h>
|
||||||
|
|
||||||
#include "ia64/rse.h"
|
#include "rse.h"
|
||||||
|
|
||||||
#include "internal.h"
|
#include "libunwind_i.h"
|
||||||
|
|
||||||
#define IA64_UNW_VER(x) ((x) >> 48)
|
#define IA64_UNW_VER(x) ((x) >> 48)
|
||||||
#define IA64_UNW_FLAG_MASK ((unw_word_t) 0x0000ffff00000000ULL)
|
#define IA64_UNW_FLAG_MASK ((unw_word_t) 0x0000ffff00000000ULL)
|
||||||
|
@ -47,8 +47,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||||
#endif
|
#endif
|
||||||
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||||
|
|
||||||
#include "tdep.h"
|
|
||||||
|
|
||||||
#if !defined(HAVE_SYS_UC_ACCESS_H) && !defined(UNW_REMOTE_ONLY)
|
#if !defined(HAVE_SYS_UC_ACCESS_H) && !defined(UNW_REMOTE_ONLY)
|
||||||
|
|
||||||
static ALWAYS_INLINE void *
|
static ALWAYS_INLINE void *
|
||||||
|
@ -499,7 +497,6 @@ struct ia64_labeled_state
|
||||||
#define ia64_install_cursor UNW_OBJ(install_cursor)
|
#define ia64_install_cursor UNW_OBJ(install_cursor)
|
||||||
#define rbs_switch UNW_OBJ(rbs_switch)
|
#define rbs_switch UNW_OBJ(rbs_switch)
|
||||||
#define rbs_find_stacked UNW_OBJ(rbs_find_stacked)
|
#define rbs_find_stacked UNW_OBJ(rbs_find_stacked)
|
||||||
#define rbs_cover_and_flush UNW_OBJ(rbs_cover_and_flush)
|
|
||||||
|
|
||||||
extern int ia64_make_proc_info (struct cursor *c);
|
extern int ia64_make_proc_info (struct cursor *c);
|
||||||
extern int ia64_fetch_proc_info (struct cursor *c, unw_word_t ip,
|
extern int ia64_fetch_proc_info (struct cursor *c, unw_word_t ip,
|
||||||
|
@ -530,10 +527,15 @@ extern int rbs_switch (struct cursor *c,
|
||||||
ia64_loc_t saved_rnat_loc);
|
ia64_loc_t saved_rnat_loc);
|
||||||
extern int rbs_find_stacked (struct cursor *c, unw_word_t regs_to_skip,
|
extern int rbs_find_stacked (struct cursor *c, unw_word_t regs_to_skip,
|
||||||
ia64_loc_t *locp, ia64_loc_t *rnat_locp);
|
ia64_loc_t *locp, ia64_loc_t *rnat_locp);
|
||||||
extern int rbs_cover_and_flush (struct cursor *c, unw_word_t nregs,
|
|
||||||
unw_word_t *dirty_partition,
|
#ifndef UNW_REMOTE_ONLY
|
||||||
unw_word_t *dirty_rnat,
|
# define NEED_RBS_COVER_AND_FLUSH
|
||||||
unw_word_t *bspstore);
|
# define rbs_cover_and_flush UNW_OBJ(rbs_cover_and_flush)
|
||||||
|
extern int rbs_cover_and_flush (struct cursor *c, unw_word_t nregs,
|
||||||
|
unw_word_t *dirty_partition,
|
||||||
|
unw_word_t *dirty_rnat,
|
||||||
|
unw_word_t *bspstore);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Warning: ia64_strloc() is for debugging only and it is NOT re-entrant! */
|
/* Warning: ia64_strloc() is for debugging only and it is NOT re-entrant! */
|
||||||
extern const char *ia64_strloc (ia64_loc_t loc);
|
extern const char *ia64_strloc (ia64_loc_t loc);
|
||||||
|
@ -616,6 +618,14 @@ ia64_get_stacked (struct cursor *c, unw_word_t reg,
|
||||||
ia64_rnat_slot_num() directly. */
|
ia64_rnat_slot_num() directly. */
|
||||||
#define ia64_unat_slot_num(addr) rse_slot_num(addr)
|
#define ia64_unat_slot_num(addr) rse_slot_num(addr)
|
||||||
|
|
||||||
|
/* The following are helper macros which makes it easier for libunwind
|
||||||
|
to be used in the kernel. They allow the kernel to optimize away
|
||||||
|
any unused code without littering everything with #ifdefs. */
|
||||||
|
#define ia64_is_big_endian(c) ((c)->as->big_endian)
|
||||||
|
#define ia64_get_abi(c) ((c)->as->abi)
|
||||||
|
#define ia64_set_abi(c, v) ((c)->as->abi = (v))
|
||||||
|
#define ia64_get_abi_marker(c) ((c)->last_abi_marker)
|
||||||
|
|
||||||
/* XXX should be in glibc: */
|
/* XXX should be in glibc: */
|
||||||
#ifndef IA64_SC_FLAG_ONSTACK
|
#ifndef IA64_SC_FLAG_ONSTACK
|
||||||
# define IA64_SC_FLAG_ONSTACK_BIT 0 /* running on signal stack? */
|
# define IA64_SC_FLAG_ONSTACK_BIT 0 /* running on signal stack? */
|
||||||
|
|
Loading…
Reference in a new issue