sigcontext_32.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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 sigcontext32 {
  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 reg_window32 sigc_wbuf[__SUNOS_MAXWIN];
  25. };
  26. typedef struct {
  27. struct {
  28. unsigned long psr;
  29. unsigned long pc;
  30. unsigned long npc;
  31. unsigned long y;
  32. unsigned long u_regs[16]; /* globals and ins */
  33. } si_regs;
  34. int si_mask;
  35. } __siginfo32_t;
  36. typedef struct {
  37. unsigned long si_float_regs [32];
  38. unsigned long si_fsr;
  39. unsigned long si_fpqdepth;
  40. struct {
  41. unsigned long *insn_addr;
  42. unsigned long insn;
  43. } si_fpqueue [16];
  44. } __siginfo_fpu_t;
  45. #endif /* !(__ASSEMBLY__) */
  46. #endif /* (__KERNEL__) */
  47. #endif /* !(__SPARC_SIGCONTEXT_H) */