home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-sparc64 / sigcontext.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  2.1 KB  |  89 lines

  1. /* $Id: sigcontext.h,v 1.12 1999/09/06 08:22:09 jj Exp $ */
  2. #ifndef __SPARC64_SIGCONTEXT_H
  3. #define __SPARC64_SIGCONTEXT_H
  4.  
  5. #ifdef __KERNEL__
  6. #include <asm/ptrace.h>
  7. #endif
  8.  
  9. #ifndef __ASSEMBLY__
  10.  
  11. #ifdef __KERNEL__
  12.  
  13. #define __SUNOS_MAXWIN   31
  14.  
  15. /* This is what SunOS does, so shall I unless we use new 32bit signals or rt signals. */
  16. struct sigcontext32 {
  17.     int sigc_onstack;      /* state to restore */
  18.     int sigc_mask;         /* sigmask to restore */
  19.     int sigc_sp;           /* stack pointer */
  20.     int sigc_pc;           /* program counter */
  21.     int sigc_npc;          /* next program counter */
  22.     int sigc_psr;          /* for condition codes etc */
  23.     int sigc_g1;           /* User uses these two registers */
  24.     int sigc_o0;           /* within the trampoline code. */
  25.  
  26.     /* Now comes information regarding the users window set
  27.      * at the time of the signal.
  28.      */
  29.     int sigc_oswins;       /* outstanding windows */
  30.  
  31.     /* stack ptrs for each regwin buf */
  32.     unsigned sigc_spbuf[__SUNOS_MAXWIN];
  33.  
  34.     /* Windows to restore after signal */
  35.     struct reg_window32 sigc_wbuf[__SUNOS_MAXWIN];
  36. };
  37.  
  38. #endif
  39.  
  40. #ifdef __KERNEL__
  41.  
  42. /* This is what we use for 32bit new non-rt signals. */
  43.  
  44. typedef struct {
  45.     struct {
  46.         unsigned int psr;
  47.         unsigned int pc;
  48.         unsigned int npc;
  49.         unsigned int y;
  50.         unsigned int u_regs[16]; /* globals and ins */
  51.     }            si_regs;
  52.     int            si_mask;
  53. } __siginfo32_t;
  54.  
  55. #endif
  56.  
  57. typedef struct {
  58.     unsigned   int si_float_regs [64];
  59.     unsigned   long si_fsr;
  60.     unsigned   long si_gsr;
  61.     unsigned   long si_fprs;
  62. } __siginfo_fpu_t;
  63.  
  64. /* This is what SunOS doesn't, so we have to write this alone
  65.    and do it properly. */
  66. struct sigcontext {
  67.     /* The size of this array has to match SI_MAX_SIZE from siginfo.h */
  68.     char            sigc_info[128];
  69.     struct {
  70.         unsigned long    u_regs[16]; /* globals and ins */
  71.         unsigned long    tstate;
  72.         unsigned long    tpc;
  73.         unsigned long    tnpc;
  74.         unsigned int    y;
  75.         unsigned int    fprs;
  76.     }            sigc_regs;
  77.     __siginfo_fpu_t *    sigc_fpu_save;
  78.     struct {
  79.         void    *    ss_sp;
  80.         int        ss_flags;
  81.         unsigned long    ss_size;
  82.     }            sigc_stack;
  83.     unsigned long        sigc_mask;
  84. };
  85.  
  86. #endif /* !(__ASSEMBLY__) */
  87.  
  88. #endif /* !(__SPARC64_SIGCONTEXT_H) */
  89.