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
8 #ifndef _SPARC64_SVR4_H
9 #define _SPARC64_SVR4_H
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 u32 winptr
[SVR4_MAXWIN
]; /* pointer to the windows */
54 svr4_rwindow_t win
[SVR4_MAXWIN
]; /* the windows */
57 typedef int svr4_gregset_t
[SVR4_NREGS
];
65 u_char inuse
; /* if fpu is in use */
69 u32 id
; /* if this holds "xrs" string => ptr is valid */
73 /* Machine dependent context */
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? */
82 /* flags for stack_t.flags */
83 enum svr4_stack_flags
{
88 /* signal stack execution place, unsupported */
89 typedef struct svr4_stack_t
{
95 /* Context used by getcontext and setcontext */
96 typedef struct svr4_ucontext_t
{
97 u32 flags
; /* context flags, indicate what is loaded */
99 svr4_sigset_t sigmask
;
101 svr4_mcontext_t mcontext
;
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
111 /* This is the signal frame that is passed to the signal handler */
113 svr4_gwindows_t gw
; /* windows */
114 svr4_ucontext_t uc
; /* machine context */
115 svr4_siginfo_t si
; /* siginfo */
116 } svr4_signal_frame_t
;
118 #define SVR4_SF_ALIGNED (((sizeof (svr4_signal_frame_t) + 7) & (~7)))
120 #endif /* include control */