linux/include/asm-mips/sigcontext.h

94 lines
2.5 KiB
C

/*
* 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>
#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;
unsigned int sc_ssflags; /* Unused */
unsigned long long sc_mdhi;
unsigned long long sc_mdlo;
unsigned int sc_cause; /* Unused */
unsigned int sc_badvaddr; /* Unused */
unsigned long sc_sigset[4]; /* kernel's sigset_t */
};
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
#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.
*/
struct sigcontext {
unsigned long sc_regs[32];
unsigned long sc_fpregs[32];
unsigned long sc_mdhi;
unsigned long sc_mdlo;
unsigned long sc_pc;
unsigned long sc_badvaddr;
unsigned int sc_status;
unsigned int sc_fpc_csr;
unsigned int sc_fpc_eir;
unsigned int sc_used_math;
unsigned int sc_cause;
};
#ifdef __KERNEL__
#include <linux/posix_types.h>
struct sigcontext32 {
__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_ssflags; /* Unused */
__u64 sc_mdhi;
__u64 sc_mdlo;
__u32 sc_cause; /* Unused */
__u32 sc_badvaddr; /* Unused */
__u32 sc_sigset[4]; /* kernel's sigset_t */
};
#endif /* __KERNEL__ */
#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
#endif /* _ASM_SIGCONTEXT_H */