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