1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-22 23:47:39 +01:00

(struct cursor): Replace rbs_top and top_rnat_loc with rbs_wridx, rbs_curr,

rbs_nvalid, and rbs_area.  Add new member sigcontext_off.

(Logical change 1.40)
This commit is contained in:
mostang.com!davidm 2003-01-21 17:41:20 +00:00
parent 7c6f9ccd2c
commit 8b17d136c5

View file

@ -1,5 +1,5 @@
/* libunwind - a platform-independent unwind library /* libunwind - a platform-independent unwind library
Copyright (C) 2001-2002 Hewlett-Packard Co Copyright (C) 2001-2003 Hewlett-Packard Co
Contributed by David Mosberger-Tang <davidm@hpl.hp.com> Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
This file is part of libunwind. This file is part of libunwind.
@ -91,8 +91,6 @@ struct cursor
unw_word_t sp; /* stack pointer value */ unw_word_t sp; /* stack pointer value */
unw_word_t psp; /* previous sp value */ unw_word_t psp; /* previous sp value */
unw_word_t cfm_loc; /* cfm save location (or NULL) */ unw_word_t cfm_loc; /* cfm save location (or NULL) */
unw_word_t rbs_top; /* address of end of register backing store */
unw_word_t top_rnat_loc; /* location of final (topmost) RNaT word */
/* preserved state: */ /* preserved state: */
unw_word_t bsp_loc; /* previous bsp save location */ unw_word_t bsp_loc; /* previous bsp save location */
@ -114,12 +112,33 @@ struct cursor
unw_word_t sigcontext_loc; /* location of sigcontext or NULL */ unw_word_t sigcontext_loc; /* location of sigcontext or NULL */
unw_word_t is_signal_frame; /* is this a signal trampoline frame? */ unw_word_t is_signal_frame; /* is this a signal trampoline frame? */
unw_word_t sigcontext_off; /* sigcontext-offset relative to signal sp */
short hint; short hint;
short prev_script; short prev_script;
int pi_valid : 1; /* is proc_info valid? */ int pi_valid : 1; /* is proc_info valid? */
int pi_is_dynamic : 1; /* proc_info found via dynamic proc info? */ int pi_is_dynamic : 1; /* proc_info found via dynamic proc info? */
unw_proc_info_t pi; /* info about current procedure */ unw_proc_info_t pi; /* info about current procedure */
/* In case of stack-discontiguities, such as those introduced by
signal-delivery on an alternate signal-stack (see
sigaltstack(2)), we use the following data-structure to keep
track of the register-backing-store areas across on which the
current frame may be backed up. Since there are at most 96
stacked registers and since we only have to track the current
frame and only areas that are not empty, at most 96
backing-store areas have to be tracked. */
uint8_t rbs_wridx; /* write index (see rbs-ia64.c) */
uint8_t rbs_curr; /* index of current rbs-area (contains c->bsp) */
uint8_t rbs_nvalid; /* number of entries that area valid */
struct rbs_area
{
unw_word_t end;
unw_word_t size;
unw_word_t rnat_loc;
}
rbs_area[96];
}; };
struct ia64_global_unwind_state struct ia64_global_unwind_state