2005-04-17 02:20:36 +04:00
/*
* This file is subject to the terms and conditions of the GNU General Public
* License . See the file " COPYING " in the main directory of this archive
* for more details .
*
* Copyright ( C ) 1996 , 1997 , 1999 by Ralf Baechle
* Copyright ( C ) 1999 Silicon Graphics , Inc .
*/
# ifndef _ASM_SIGCONTEXT_H
# define _ASM_SIGCONTEXT_H
# include <asm/sgidefs.h>
2005-09-04 02:56:17 +04:00
2005-04-17 02:20:36 +04:00
# if _MIPS_SIM == _MIPS_SIM_ABI32
/*
* Keep this struct definition in sync with the sigcontext fragment
* in arch / mips / tools / offset . c
*/
struct sigcontext {
unsigned int sc_regmask ; /* Unused */
2007-02-05 17:24:26 +03:00
unsigned int sc_status ; /* Unused */
2005-04-17 02:20:36 +04:00
unsigned long long sc_pc ;
unsigned long long sc_regs [ 32 ] ;
unsigned long long sc_fpregs [ 32 ] ;
2007-02-02 19:41:47 +03:00
unsigned int sc_acx ; /* Was sc_ownedfp */
2005-04-17 02:20:36 +04:00
unsigned int sc_fpc_csr ;
unsigned int sc_fpc_eir ; /* Unused */
unsigned int sc_used_math ;
2005-05-31 15:49:19 +04:00
unsigned int sc_dsp ; /* dsp status, was sc_ssflags */
2005-04-17 02:20:36 +04:00
unsigned long long sc_mdhi ;
unsigned long long sc_mdlo ;
2005-05-31 15:49:19 +04:00
unsigned long sc_hi1 ; /* Was sc_cause */
unsigned long sc_lo1 ; /* Was sc_badvaddr */
unsigned long sc_hi2 ; /* Was sc_sigset[4] */
unsigned long sc_lo2 ;
unsigned long sc_hi3 ;
unsigned long sc_lo3 ;
2005-04-17 02:20:36 +04:00
} ;
# endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
2005-09-04 02:56:17 +04:00
2005-04-17 02:20:36 +04:00
# if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
2007-02-17 18:12:57 +03:00
# include <linux/posix_types.h>
2005-04-17 02:20:36 +04:00
/*
* Keep this struct definition in sync with the sigcontext fragment
* in arch / mips / tools / offset . c
*
* Warning : this structure illdefined with sc_badvaddr being just an unsigned
* int so it was changed to unsigned long in 2.6 .0 - test1 . This may break
* binary compatibility - no prisoners .
2005-05-31 15:49:19 +04:00
* DSP ASE in 2.6 .12 - rc4 . Turn sc_mdhi and sc_mdlo into an array of four
* entries , add sc_dsp and sc_reserved for padding . No prisoners .
2005-04-17 02:20:36 +04:00
*/
struct sigcontext {
2007-02-17 18:12:57 +03:00
__u64 sc_regs [ 32 ] ;
__u64 sc_fpregs [ 32 ] ;
__u64 sc_mdhi ;
__u64 sc_hi1 ;
__u64 sc_hi2 ;
__u64 sc_hi3 ;
__u64 sc_mdlo ;
__u64 sc_lo1 ;
__u64 sc_lo2 ;
__u64 sc_lo3 ;
__u64 sc_pc ;
__u32 sc_fpc_csr ;
__u32 sc_used_math ;
__u32 sc_dsp ;
__u32 sc_reserved ;
2005-04-17 02:20:36 +04:00
} ;
# ifdef __KERNEL__
struct sigcontext32 {
2005-05-31 15:49:19 +04:00
__u32 sc_regmask ; /* Unused */
2007-02-05 17:24:26 +03:00
__u32 sc_status ; /* Unused */
2005-05-31 15:49:19 +04:00
__u64 sc_pc ;
__u64 sc_regs [ 32 ] ;
__u64 sc_fpregs [ 32 ] ;
2007-02-02 19:41:47 +03:00
__u32 sc_acx ; /* Only MIPS32; was sc_ownedfp */
2005-05-31 15:49:19 +04:00
__u32 sc_fpc_csr ;
__u32 sc_fpc_eir ; /* Unused */
__u32 sc_used_math ;
__u32 sc_dsp ; /* dsp status, was sc_ssflags */
__u64 sc_mdhi ;
__u64 sc_mdlo ;
__u32 sc_hi1 ; /* Was sc_cause */
__u32 sc_lo1 ; /* Was sc_badvaddr */
__u32 sc_hi2 ; /* Was sc_sigset[4] */
__u32 sc_lo2 ;
__u32 sc_hi3 ;
__u32 sc_lo3 ;
2005-04-17 02:20:36 +04:00
} ;
# endif /* __KERNEL__ */
# endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
# endif /* _ASM_SIGCONTEXT_H */