~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/asm-sparc/svr4.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* Solaris/SPARC constants and definitions -- 
  2  * (C) 1996 Miguel de Icaza
  3  *
  4  * This file is not meant to be included by user level applications
  5  * but the solaris syscall emulator
  6  */
  7 
  8 #ifndef _SPARC_SVR4_H
  9 #define _SPARC_SVR4_H
 10 
 11 /* Signals as used by svr4 */
 12 typedef struct {                /* signal set type */
 13         ulong sigbits[4];
 14 } svr4_sigset_t;
 15 
 16 /* Values for siginfo.code */
 17 #define SVR4_SINOINFO 32767
 18 /* Siginfo, sucker expects bunch of information on those parameters */
 19 typedef union {
 20         char total_size [128];
 21         struct {
 22                 int signo;
 23                 int code;
 24                 int error;
 25                 union {
 26                 } data; 
 27         } siginfo;
 28 } svr4_siginfo_t;
 29 
 30 /* Context definition */
 31 
 32 /* Location of the user stored registers into a greg_t */
 33 enum {
 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
 39 };
 40 
 41 /* sizeof (regs) / sizeof (greg_t), defined in the ABI */
 42 #define SVR4_NREGS  19
 43 #define SVR4_MAXWIN 31
 44 
 45 typedef struct {
 46         uint rwin_lo[8];
 47         uint rwin_in[8];
 48 } svr4_rwindow_t;
 49 
 50 typedef struct {
 51         int            count;
 52         int            *winptr [SVR4_MAXWIN]; /* pointer to the windows */
 53         svr4_rwindow_t win[SVR4_MAXWIN];      /* the windows */
 54 } svr4_gwindows_t;
 55 
 56 typedef int svr4_gregset_t[SVR4_NREGS];
 57 
 58 typedef struct {
 59         double   fpu_regs[32];
 60         void     *fp_q;
 61         unsigned fp_fsr;
 62         u_char   fp_nqel;
 63         u_char   fp_nqsize;
 64         u_char   inuse;         /* if fpu is in use */
 65 } svr4_fregset_t;
 66 
 67 typedef struct {
 68         uint    id;             /* if this holds "xrs" string => ptr is valid */
 69         caddr_t ptr;
 70 } svr4_xrs_t;
 71 
 72 /* Machine dependent context */
 73 typedef struct {
 74         svr4_gregset_t   greg;  /* registers 0..19 (see top) */
 75         svr4_gwindows_t  *gwin; /* may point to register windows */
 76         svr4_fregset_t   freg;  /* floating point registers */
 77         svr4_xrs_t       xrs;   /* mhm? */
 78         long             pad[19];
 79 } svr4_mcontext_t;
 80 
 81 /* flags for stack_t.flags */
 82 enum svr4_stack_flags {
 83         SVR4_SS_ONSTACK,
 84         SVR4_SS_DISABLE,
 85 };
 86 
 87 /* signal stack exection place, unsupported */
 88 typedef struct svr4_stack_t {
 89         char *sp;
 90         int  size;
 91         int  flags;
 92 } svr4_stack_t;
 93 
 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;
 99         svr4_stack_t         stack;
100         svr4_mcontext_t      mcontext;
101         long                 pad[23];
102 } svr4_ucontext_t;                          
103 
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
107  * handler
108  */
109 
110 /* This is the signal frame that is passed to the signal handler */
111 typedef struct {
112         svr4_gwindows_t gw;     /* windows */
113         svr4_ucontext_t uc;     /* machine context */
114         svr4_siginfo_t  si;     /* siginfo */
115 } svr4_signal_frame_t;
116 
117 #define SVR4_SF_ALIGNED (((sizeof (svr4_signal_frame_t) + 7) & (~7)))
118 
119 #endif /* include control */
120 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.