summaryrefslogtreecommitdiff
path: root/include/tdep-arm
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@freebsd.org>2016-02-18 11:39:50 +0200
committerDave Watson <davejwatson@fb.com>2017-08-24 09:08:58 -0700
commitfd02fd59e7462f49311d4e0d6547aacf48fe072b (patch)
tree4aeaf942b819c99b301cfcae4e553de97a29111d /include/tdep-arm
parent60663c8f69ebfe14043d2436c94a4c9514038d9b (diff)
downloadlibunwind-fd02fd59e7462f49311d4e0d6547aacf48fe072b.tar.gz
arm: FreeBSD/ARMv6 port
Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'include/tdep-arm')
-rw-r--r--include/tdep-arm/libunwind_i.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/include/tdep-arm/libunwind_i.h b/include/tdep-arm/libunwind_i.h
index 9996b2f2..2602f41c 100644
--- a/include/tdep-arm/libunwind_i.h
+++ b/include/tdep-arm/libunwind_i.h
@@ -38,6 +38,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
typedef enum
{
+ UNW_ARM_FRAME_SYSCALL = -3, /* r7 saved in r12, sp offset zero */
UNW_ARM_FRAME_STANDARD = -2, /* regular r7, sp +/- offset */
UNW_ARM_FRAME_SIGRETURN = -1, /* special sigreturn frame */
UNW_ARM_FRAME_OTHER = 0, /* not cacheable (special or unrecognised) */
@@ -48,7 +49,7 @@ unw_tdep_frame_type_t;
typedef struct
{
uint32_t virtual_address;
- int32_t frame_type : 2; /* unw_tdep_frame_type_t classification */
+ int32_t frame_type : 3; /* unw_tdep_frame_type_t classification */
int32_t last_frame : 1; /* non-zero if last frame in chain */
int32_t cfa_reg_sp : 1; /* cfa dwarf base register is sp vs. r7 */
int32_t cfa_reg_offset : 30; /* cfa is at this offset from base register value */
@@ -86,7 +87,9 @@ struct cursor
ARM_SCF_LINUX_SIGFRAME, /* non-RT signal frame, kernel >=2.6.18 */
ARM_SCF_LINUX_RT_SIGFRAME, /* RT signal frame, kernel >=2.6.18 */
ARM_SCF_LINUX_OLD_SIGFRAME, /* non-RT signal frame, kernel < 2.6.18 */
- ARM_SCF_LINUX_OLD_RT_SIGFRAME /* RT signal frame, kernel < 2.6.18 */
+ ARM_SCF_LINUX_OLD_RT_SIGFRAME, /* RT signal frame, kernel < 2.6.18 */
+ ARM_SCF_FREEBSD_SIGFRAME, /* FreeBSD sigframe */
+ ARM_SCF_FREEBSD_SYSCALL, /* FreeBSD syscall stub */
}
sigcontext_format;
unw_word_t sigcontext_addr;