diff options
| author | matt <matt@NetBSD.org> | 2014-02-28 05:30:24 +0000 |
|---|---|---|
| committer | matt <matt@NetBSD.org> | 2014-02-28 05:30:24 +0000 |
| commit | 1e42e20cf06e5d9844b6a16c19da2fb29f5a4510 (patch) | |
| tree | 48726655ce6afc86c2ea2fcd9370dde998a31c4b /sys/arch/powerpc/include | |
| parent | 0c0d241d4cc03eec1a4074ca6244bad89d6077dc (diff) | |
Add trapframe32 for COMPAT_NETBSD32
Diffstat (limited to 'sys/arch/powerpc/include')
| -rw-r--r-- | sys/arch/powerpc/include/frame.h | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/sys/arch/powerpc/include/frame.h b/sys/arch/powerpc/include/frame.h index 43a2d2bb17d..1c02b5e32e2 100644 --- a/sys/arch/powerpc/include/frame.h +++ b/sys/arch/powerpc/include/frame.h @@ -1,4 +1,4 @@ -/* $NetBSD: frame.h,v 1.25 2012/08/01 16:19:42 matt Exp $ */ +/* $NetBSD: frame.h,v 1.26 2014/02/28 05:30:24 matt Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -59,6 +59,16 @@ struct reg_sans_pc { register_t r_ctr; }; +#ifdef _LP64 +struct reg_sans_pc32 { + register32_t r_fixreg[32]; + register32_t r_lr; + uint32_t r_cr; + uint32_t r_xer; + register32_t r_ctr; +}; +#endif + struct utrapframe { register_t fixreg[32]; register_t lr; @@ -78,6 +88,14 @@ struct clockframe { int cf_idepth; }; +#ifdef _LP64 +struct clockframe32 { + register32_t cf_srr0; + register32_t cf_srr1; + int cf_idepth; +}; +#endif + struct trapframe { struct reg_sans_pc tf_ureg; struct clockframe tf_cf; @@ -100,6 +118,31 @@ struct trapframe { uint32_t tf_spefscr; #endif }; + +#ifdef _LP64 +struct trapframe32 { + struct reg_sans_pc32 tf_ureg; + struct clockframe32 tf_cf; + uint32_t tf_exc; +#if defined(PPC_OEA) || defined(PPC_OEA64) || defined(PPC_OEA64_BRIDGE) + register32_t tf_dar; + register32_t tf_pad0[2]; + uint32_t tf_dsisr; + uint32_t tf_vrsave; + uint32_t tf_mq; + uint32_t tf_pad1[1]; +#endif +#if defined(PPC_BOOKE) || defined(PPC_IBM4XX) + register32_t tf_dear; + register32_t tf_mcar; + register32_t tf_sprg1; + uint32_t tf_esr; + uint32_t tf_mcsr; + uint32_t tf_pid; + uint32_t tf_spefscr; +#endif +}; +#endif /* _LP64 */ #define tf_fixreg tf_ureg.r_fixreg #define tf_lr tf_ureg.r_lr #define tf_cr tf_ureg.r_cr |
