1 /* Copyright (C) 1996-2022 Free Software Foundation, Inc. This file is part of the GNU C Library. 2 3 The GNU C Library is free software; you can redistribute it and/or 4 modify it under the terms of the GNU Lesser General Public 5 License as published by the Free Software Foundation; either 6 version 2.1 of the License, or (at your option) any later version. 7 8 The GNU C Library is distributed in the hope that it will be useful, 9 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 Lesser General Public License for more details. 12 13 You should have received a copy of the GNU Lesser General Public 14 License along with the GNU C Library. If not, see 15 <https://www.gnu.org/licenses/>. */ 16 17 #ifndef _BITS_SIGCONTEXT_H 18 #define _BITS_SIGCONTEXT_H 1 19 20 #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H 21 # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead." 22 #endif 23 24 #include <sgidefs.h> 25 26 #if _MIPS_SIM == _ABIO32 27 28 /* Certain unused fields were replaced with new ones in 2.6.12-rc4. 29 The changes were as follows: 30 31 sc_cause -> sc_hi1 32 sc_badvaddr -> sc_lo1 33 sc_sigset[0] -> sc_hi2 34 sc_sigset[1] -> sc_lo2 35 sc_sigset[2] -> sc_hi3 36 sc_sigset[3] -> sc_lo3 37 38 sc_regmask, sc_ownedfp and sc_fpc_eir are not used. */ 39 struct sigcontext { 40 unsigned int sc_regmask; 41 unsigned int sc_status; 42 __extension__ unsigned long long sc_pc; 43 __extension__ unsigned long long sc_regs[32]; 44 __extension__ unsigned long long sc_fpregs[32]; 45 unsigned int sc_ownedfp; 46 unsigned int sc_fpc_csr; 47 unsigned int sc_fpc_eir; 48 unsigned int sc_used_math; 49 unsigned int sc_dsp; 50 __extension__ unsigned long long sc_mdhi; 51 __extension__ unsigned long long sc_mdlo; 52 unsigned long sc_hi1; 53 unsigned long sc_lo1; 54 unsigned long sc_hi2; 55 unsigned long sc_lo2; 56 unsigned long sc_hi3; 57 unsigned long sc_lo3; 58 }; 59 60 #else 61 62 /* This structure changed in 2.6.12-rc4 when DSP support was added. */ 63 struct sigcontext { 64 __extension__ unsigned long long sc_regs[32]; 65 __extension__ unsigned long long sc_fpregs[32]; 66 __extension__ unsigned long long sc_mdhi; 67 __extension__ unsigned long long sc_hi1; 68 __extension__ unsigned long long sc_hi2; 69 __extension__ unsigned long long sc_hi3; 70 __extension__ unsigned long long sc_mdlo; 71 __extension__ unsigned long long sc_lo1; 72 __extension__ unsigned long long sc_lo2; 73 __extension__ unsigned long long sc_lo3; 74 __extension__ unsigned long long sc_pc; 75 unsigned int sc_fpc_csr; 76 unsigned int sc_used_math; 77 unsigned int sc_dsp; 78 unsigned int sc_reserved; 79 }; 80 81 #endif /* _MIPS_SIM != _ABIO32 */ 82 #endif 83