sigcontext.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. #include <asm/sgidefs.h>
  12. #if _MIPS_SIM == _MIPS_SIM_ABI32
  13. /*
  14. * Keep this struct definition in sync with the sigcontext fragment
  15. * in arch/mips/tools/offset.c
  16. */
  17. struct sigcontext {
  18. unsigned int sc_regmask; /* Unused */
  19. unsigned int sc_status;
  20. unsigned long long sc_pc;
  21. unsigned long long sc_regs[32];
  22. unsigned long long sc_fpregs[32];
  23. unsigned int sc_ownedfp; /* Unused */
  24. unsigned int sc_fpc_csr;
  25. unsigned int sc_fpc_eir; /* Unused */
  26. unsigned int sc_used_math;
  27. unsigned int sc_ssflags; /* Unused */
  28. unsigned long long sc_mdhi;
  29. unsigned long long sc_mdlo;
  30. unsigned int sc_cause; /* Unused */
  31. unsigned int sc_badvaddr; /* Unused */
  32. unsigned long sc_sigset[4]; /* kernel's sigset_t */
  33. };
  34. #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
  35. #if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
  36. /*
  37. * Keep this struct definition in sync with the sigcontext fragment
  38. * in arch/mips/tools/offset.c
  39. *
  40. * Warning: this structure illdefined with sc_badvaddr being just an unsigned
  41. * int so it was changed to unsigned long in 2.6.0-test1. This may break
  42. * binary compatibility - no prisoners.
  43. */
  44. struct sigcontext {
  45. unsigned long sc_regs[32];
  46. unsigned long sc_fpregs[32];
  47. unsigned long sc_mdhi;
  48. unsigned long sc_mdlo;
  49. unsigned long sc_pc;
  50. unsigned long sc_badvaddr;
  51. unsigned int sc_status;
  52. unsigned int sc_fpc_csr;
  53. unsigned int sc_fpc_eir;
  54. unsigned int sc_used_math;
  55. unsigned int sc_cause;
  56. };
  57. #ifdef __KERNEL__
  58. #include <linux/posix_types.h>
  59. struct sigcontext32 {
  60. __u32 sc_regmask; /* Unused */
  61. __u32 sc_status;
  62. __u64 sc_pc;
  63. __u64 sc_regs[32];
  64. __u64 sc_fpregs[32];
  65. __u32 sc_ownedfp; /* Unused */
  66. __u32 sc_fpc_csr;
  67. __u32 sc_fpc_eir; /* Unused */
  68. __u32 sc_used_math;
  69. __u32 sc_ssflags; /* Unused */
  70. __u64 sc_mdhi;
  71. __u64 sc_mdlo;
  72. __u32 sc_cause; /* Unused */
  73. __u32 sc_badvaddr; /* Unused */
  74. __u32 sc_sigset[4]; /* kernel's sigset_t */
  75. };
  76. #endif /* __KERNEL__ */
  77. #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
  78. #endif /* _ASM_SIGCONTEXT_H */