sigcontext_32.h 1.4 KB

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