1 /* Solaris/SPARC constants and definitions -- 
 
   2  * (C) 1996 Miguel de Icaza
 
   4  * This file is not meant to be included by user level applications
 
   5  * but the solaris syscall emulator
 
  11 /* Signals as used by svr4 */
 
  12 typedef struct {                /* signal set type */
 
  16 /* Values for siginfo.code */
 
  17 #define SVR4_SINOINFO 32767
 
  18 /* Siginfo, sucker expects bunch of information on those parameters */
 
  20         char total_size [128];
 
  30 /* Context definition */
 
  32 /* Location of the user stored registers into a greg_t */
 
  34         SVR4_PSR, SVR4_PC, SVR4_NPC, SVR4_Y,
 
  35         SVR4_G1,  SVR4_G2, SVR4_G3,  SVR4_G4,
 
  36         SVR4_G5,  SVR4_G6, SVR4_G7,  SVR4_O0,
 
  37         SVR4_O1,  SVR4_O2, SVR4_O3,  SVR4_O4,
 
  38         SVR4_O5,  SVR4_O6, SVR4_O7
 
  41 /* sizeof (regs) / sizeof (greg_t), defined in the ABI */
 
  43 #define SVR4_MAXWIN 31
 
  52         int            __user *winptr [SVR4_MAXWIN]; /* pointer to the windows */
 
  53         svr4_rwindow_t win[SVR4_MAXWIN];      /* the windows */
 
  56 typedef int svr4_gregset_t[SVR4_NREGS];
 
  64         u_char   inuse;         /* if fpu is in use */
 
  68         uint    id;             /* if this holds "xrs" string => ptr is valid */
 
  72 /* Machine dependent context */
 
  74         svr4_gregset_t   greg;  /* registers 0..19 (see top) */
 
  75         svr4_gwindows_t  __user *gwin;  /* may point to register windows */
 
  76         svr4_fregset_t   freg;  /* floating point registers */
 
  77         svr4_xrs_t       xrs;   /* mhm? */
 
  81 /* flags for stack_t.flags */
 
  82 enum svr4_stack_flags {
 
  87 /* signal stack exection place, unsupported */
 
  88 typedef struct svr4_stack_t {
 
  94 /* Context used by getcontext and setcontext */
 
  95 typedef struct svr4_ucontext_t {
 
  96         u_long               flags; /* context flags, indicate what is loaded */
 
  97         struct svr4_ucontext *link;
 
  98         svr4_sigset_t        sigmask;
 
 100         svr4_mcontext_t      mcontext;
 
 104 /* windows hold the windows as they were at signal time,
 
 105  * ucontext->mcontext holds a pointer to them.
 
 106  * addresses for uc and si are passed as parameters to svr4 signal
 
 110 /* This is the signal frame that is passed to the signal handler */
 
 112         svr4_gwindows_t gw;     /* windows */
 
 113         svr4_ucontext_t uc;     /* machine context */
 
 114         svr4_siginfo_t  si;     /* siginfo */
 
 115 } svr4_signal_frame_t;
 
 117 #define SVR4_SF_ALIGNED (((sizeof (svr4_signal_frame_t) + 7) & (~7)))
 
 119 #endif /* include control */