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 _ASM_SIGCONTEXT_H 10 #define _ASM_SIGCONTEXT_H 11 12 #include <linux/types.h> 13 #include <asm/sgidefs.h> 14 15 #if _MIPS_SIM == _MIPS_SIM_ABI32 16 17 /* 18 * Keep this struct definition in sync with the sigcontext fragment 19 * in arch/mips/tools/offset.c 20 */ 21 struct sigcontext { 22 unsigned int sc_regmask; /* Unused */ 23 unsigned int sc_status; /* Unused */ 24 unsigned long long sc_pc; 25 unsigned long long sc_regs[32]; 26 unsigned long long sc_fpregs[32]; 27 unsigned int sc_acx; /* Was sc_ownedfp */ 28 unsigned int sc_fpc_csr; 29 unsigned int sc_fpc_eir; /* Unused */ 30 unsigned int sc_used_math; 31 unsigned int sc_dsp; /* dsp status, was sc_ssflags */ 32 unsigned long long sc_mdhi; 33 unsigned long long sc_mdlo; 34 unsigned long sc_hi1; /* Was sc_cause */ 35 unsigned long sc_lo1; /* Was sc_badvaddr */ 36 unsigned long sc_hi2; /* Was sc_sigset[4] */ 37 unsigned long sc_lo2; 38 unsigned long sc_hi3; 39 unsigned long sc_lo3; 40 }; 41 42 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 43 44 #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 45 46 #include <linux/posix_types.h> 47 /* 48 * Keep this struct definition in sync with the sigcontext fragment 49 * in arch/mips/tools/offset.c 50 * 51 * Warning: this structure illdefined with sc_badvaddr being just an unsigned 52 * int so it was changed to unsigned long in 2.6.0-test1. This may break 53 * binary compatibility - no prisoners. 54 * DSP ASE in 2.6.12-rc4. Turn sc_mdhi and sc_mdlo into an array of four 55 * entries, add sc_dsp and sc_reserved for padding. No prisoners. 56 */ 57 struct sigcontext { 58 __u64 sc_regs[32]; 59 __u64 sc_fpregs[32]; 60 __u64 sc_mdhi; 61 __u64 sc_hi1; 62 __u64 sc_hi2; 63 __u64 sc_hi3; 64 __u64 sc_mdlo; 65 __u64 sc_lo1; 66 __u64 sc_lo2; 67 __u64 sc_lo3; 68 __u64 sc_pc; 69 __u32 sc_fpc_csr; 70 __u32 sc_used_math; 71 __u32 sc_dsp; 72 __u32 sc_reserved; 73 }; 74 75 #ifdef __KERNEL__ 76 77 struct sigcontext32 { 78 __u32 sc_regmask; /* Unused */ 79 __u32 sc_status; /* Unused */ 80 __u64 sc_pc; 81 __u64 sc_regs[32]; 82 __u64 sc_fpregs[32]; 83 __u32 sc_acx; /* Only MIPS32; was sc_ownedfp */ 84 __u32 sc_fpc_csr; 85 __u32 sc_fpc_eir; /* Unused */ 86 __u32 sc_used_math; 87 __u32 sc_dsp; /* dsp status, was sc_ssflags */ 88 __u64 sc_mdhi; 89 __u64 sc_mdlo; 90 __u32 sc_hi1; /* Was sc_cause */ 91 __u32 sc_lo1; /* Was sc_badvaddr */ 92 __u32 sc_hi2; /* Was sc_sigset[4] */ 93 __u32 sc_lo2; 94 __u32 sc_hi3; 95 __u32 sc_lo3; 96 }; 97 #endif /* __KERNEL__ */ 98 99 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */ 100 101 #endif /* _ASM_SIGCONTEXT_H */ 102