(root)/
glibc-2.38/
sysdeps/
unix/
sysv/
linux/
mips/
bits/
sigcontext.h
       1  /* Copyright (C) 1996-2023 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