sigcontext.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* $Id: sigcontext.h,v 1.14 1999/09/06 08:22:05 jj Exp $ */
  2. #ifndef __SPARC_SIGCONTEXT_H
  3. #define __SPARC_SIGCONTEXT_H
  4. #ifdef __KERNEL__
  5. #include <asm/ptrace.h>
  6. #ifndef __ASSEMBLY__
  7. #define __SUNOS_MAXWIN 31
  8. /* This is what SunOS does, so shall I. */
  9. struct sigcontext {
  10. int sigc_onstack; /* state to restore */
  11. int sigc_mask; /* sigmask to restore */
  12. int sigc_sp; /* stack pointer */
  13. int sigc_pc; /* program counter */
  14. int sigc_npc; /* next program counter */
  15. int sigc_psr; /* for condition codes etc */
  16. int sigc_g1; /* User uses these two registers */
  17. int sigc_o0; /* within the trampoline code. */
  18. /* Now comes information regarding the users window set
  19. * at the time of the signal.
  20. */
  21. int sigc_oswins; /* outstanding windows */
  22. /* stack ptrs for each regwin buf */
  23. char *sigc_spbuf[__SUNOS_MAXWIN];
  24. /* Windows to restore after signal */
  25. struct {
  26. unsigned long locals[8];
  27. unsigned long ins[8];
  28. } sigc_wbuf[__SUNOS_MAXWIN];
  29. };
  30. typedef struct {
  31. struct {
  32. unsigned long psr;
  33. unsigned long pc;
  34. unsigned long npc;
  35. unsigned long y;
  36. unsigned long u_regs[16]; /* globals and ins */
  37. } si_regs;
  38. int si_mask;
  39. } __siginfo_t;
  40. typedef struct {
  41. unsigned long si_float_regs [32];
  42. unsigned long si_fsr;
  43. unsigned long si_fpqdepth;
  44. struct {
  45. unsigned long *insn_addr;
  46. unsigned long insn;
  47. } si_fpqueue [16];
  48. } __siginfo_fpu_t;
  49. #endif /* !(__ASSEMBLY__) */
  50. #endif /* (__KERNEL__) */
  51. #endif /* !(__SPARC_SIGCONTEXT_H) */