1
0
Fork 0
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:
hp.com!davidm 2005-05-20 09:48:08 +00:00
parent 8e6f3c8485
commit 1228462adc

View file

@ -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? */