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

Linux Cross Reference
Linux/include/asm-sparc64/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 _SPARC64_SVR4_H
  9 #define _SPARC64_SVR4_H
 10 
 11 /* Signals as used by svr4 */
 12 typedef struct {                /* signal set type */
 13         uint 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         u32 rwin_lo[8];
 47         u32 rwin_in[8];
 48 } svr4_rwindow_t;
 49 
 50 typedef struct {
 51         int            count;
 52         u32            winptr [SVR4_MAXWIN]; /* pointer to the windows */
 53 
 54         svr4_rwindow_t win[SVR4_MAXWIN];      /* the windows */
 55 } svr4_gwindows_t;
 56 
 57 typedef int svr4_gregset_t[SVR4_NREGS];
 58 
 59 typedef struct {
 60         u64      fpu_regs[32];
 61         u32      fp_q;
 62         u32      fp_fsr;
 63         u_char   fp_nqel;
 64         u_char   fp_nqsize;
 65         u_char   inuse;         /* if fpu is in use */
 66 } svr4_fregset_t;
 67 
 68 typedef struct {
 69         u32    id;              /* if this holds "xrs" string => ptr is valid */
 70         u32    ptr;
 71 } svr4_xrs_t;
 72 
 73 /* Machine dependent context */
 74 typedef struct {
 75         svr4_gregset_t   greg;  /* registers 0..19 (see top) */
 76         u32              gwin;  /* may point to register windows */
 77         svr4_fregset_t   freg;  /* floating point registers */
 78         svr4_xrs_t       xrs;   /* mhm? */
 79         int              pad[19];
 80 } svr4_mcontext_t;
 81 
 82 /* flags for stack_t.flags */
 83 enum svr4_stack_flags {
 84         SVR4_SS_ONSTACK,
 85         SVR4_SS_DISABLE,
 86 };
 87 
 88 /* signal stack exection place, unsupported */
 89 typedef struct svr4_stack_t {
 90         char *sp;
 91         int  size;
 92         int  flags;
 93 } svr4_stack_t;
 94 
 95 /* Context used by getcontext and setcontext */
 96 typedef struct svr4_ucontext_t {
 97         u32             flags; /* context flags, indicate what is loaded */
 98         u32             link;
 99         svr4_sigset_t   sigmask;
100         svr4_stack_t    stack;
101         svr4_mcontext_t mcontext;
102         int             pad[23];
103 } svr4_ucontext_t;                          
104 
105 /* windows hold the windows as they were at signal time,
106  * ucontext->mcontext holds a pointer to them.
107  * addresses for uc and si are passed as parameters to svr4 signal
108  * handler
109  */
110 
111 /* This is the signal frame that is passed to the signal handler */
112 typedef struct {
113         svr4_gwindows_t gw;     /* windows */
114         svr4_ucontext_t uc;     /* machine context */
115         svr4_siginfo_t  si;     /* siginfo */
116 } svr4_signal_frame_t;
117 
118 #define SVR4_SF_ALIGNED (((sizeof (svr4_signal_frame_t) + 7) & (~7)))
119 
120 #endif /* include control */
121 

~ [ 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.