1 /* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Copyright (C) 1996, 1997, 1999 by Ralf Baechle 7 * Copyright (C) 1999 Silicon Graphics, Inc. 8 */ 9 #ifndef _UAPI_ASM_SIGCONTEXT_H 10 #define _UAPI_ASM_SIGCONTEXT_H 11 12 #include <linux/types.h> 13 #include <asm/sgidefs.h> 14 15 /* Bits which may be set in sc_used_math */ 16 #define USEDMATH_FP (1 << 0) 17 #define USEDMATH_MSA (1 << 1) 18 19 #if _MIPS_SIM == _MIPS_SIM_ABI32 20 21 /* 22 * Keep this struct definition in sync with the sigcontext fragment 23 * in arch/mips/tools/offset.c 24 */ 25 struct sigcontext { 26 unsigned int sc_regmask; /* Unused */ 27 unsigned int sc_status; /* Unused */ 28 unsigned long long sc_pc; 29 unsigned long long sc_regs[32]; 30 unsigned long long sc_fpregs[32]; 31 unsigned int sc_acx; /* Was sc_ownedfp */ 32 unsigned int sc_fpc_csr; 33 unsigned int sc_fpc_eir; /* Unused */ 34 unsigned int sc_used_math; 35 unsigned int sc_dsp; /* dsp status, was sc_ssflags */ 36 unsigned long long sc_mdhi; 37 unsigned long long sc_mdlo; 38 unsigned long sc_hi1; /* Was sc_cause */ 39 unsigned long sc_lo1; /* Was sc_badvaddr */ 40 unsigned long sc_hi2; /* Was sc_sigset[4] */ 41 unsigned long sc_lo2; 42 unsigned long sc_hi3; 43 unsigned long sc_lo3; 44 unsigned long long sc_msaregs[32]; /* Most significant 64 bits */ 45 unsigned long sc_msa_csr; 46 }; 47 48 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 49 50 #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 51 52 #include <linux/posix_types.h> 53 /* 54 * Keep this struct definition in sync with the sigcontext fragment 55 * in arch/mips/tools/offset.c 56 * 57 * Warning: this structure illdefined with sc_badvaddr being just an unsigned 58 * int so it was changed to unsigned long in 2.6.0-test1. This may break 59 * binary compatibility - no prisoners. 60 * DSP ASE in 2.6.12-rc4. Turn sc_mdhi and sc_mdlo into an array of four 61 * entries, add sc_dsp and sc_reserved for padding. No prisoners. 62 */ 63 struct sigcontext { 64 __u64 sc_regs[32]; 65 __u64 sc_fpregs[32]; 66 __u64 sc_mdhi; 67 __u64 sc_hi1; 68 __u64 sc_hi2; 69 __u64 sc_hi3; 70 __u64 sc_mdlo; 71 __u64 sc_lo1; 72 __u64 sc_lo2; 73 __u64 sc_lo3; 74 __u64 sc_pc; 75 __u32 sc_fpc_csr; 76 __u32 sc_used_math; 77 __u32 sc_dsp; 78 __u32 sc_reserved; 79 __u64 sc_msaregs[32]; 80 __u32 sc_msa_csr; 81 }; 82 83 84 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */ 85 86 #endif /* _UAPI_ASM_SIGCONTEXT_H */ 87