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 */
unsigned int sc_status ;
unsigned long long sc_pc ;
unsigned long long sc_regs [ 32 ] ;
unsigned long long sc_fpregs [ 32 ] ;
unsigned int sc_ownedfp ; /* Unused */
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
/*
* 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 {
unsigned long sc_regs [ 32 ] ;
unsigned long sc_fpregs [ 32 ] ;
2005-05-31 15:49:19 +04:00
unsigned long sc_hi [ 4 ] ;
unsigned long sc_lo [ 4 ] ;
2005-04-17 02:20:36 +04:00
unsigned long sc_pc ;
unsigned int sc_fpc_csr ;
unsigned int sc_used_math ;
2005-05-31 15:49:19 +04:00
unsigned int sc_dsp ;
unsigned int sc_reserved ;
2005-04-17 02:20:36 +04:00
} ;
# ifdef __KERNEL__
# include <linux/posix_types.h>
struct sigcontext32 {
2005-05-31 15:49:19 +04:00
__u32 sc_regmask ; /* Unused */
__u32 sc_status ;
__u64 sc_pc ;
__u64 sc_regs [ 32 ] ;
__u64 sc_fpregs [ 32 ] ;
__u32 sc_ownedfp ; /* Unused */
__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 */