1 /* $NetBSD: mcontext.h,v 1.7 2006/03/14 22:03:39 cube Exp $ */
3 #ifndef _SPARC64_MCONTEXT_H_
4 #define _SPARC64_MCONTEXT_H_
6 #include <sparc/mcontext.h>
8 #define _NGREG32 19 /* %psr, pc, npc, %g1-7, %o0-7 */
9 typedef int __greg32_t
;
10 typedef __greg32_t __gregset32_t
[_NGREG32
];
12 typedef unsigned int netbsd32___greg32p_t
;
13 typedef unsigned int netbsd32___fqp_t
;
14 typedef unsigned int netbsd32___gwindows32p_t
;
36 /* Layout of a register window. */
38 __greg32_t __rw_local
[8]; /* %l0-7 */
39 __greg32_t __rw_in
[8]; /* %i0-7 */
42 /* Description of available register windows. */
45 netbsd32___greg32p_t __spbuf
[_SPARC_MAXREGWINDOW
];
46 __rwindow32_t __wbuf
[_SPARC_MAXREGWINDOW
];
49 /* FPU state description */
52 unsigned int __fpu_regs
[32];
53 double __fpu_dregs
[16];
54 } __fpu_fr
; /* FPR contents */
55 netbsd32___fqp_t __fpu_q
; /* pointer to FPU insn queue */
56 unsigned int __fpu_fsr
; /* %fsr */
57 unsigned char __fpu_qcnt
; /* # entries in __fpu_q */
58 unsigned char __fpu_q_entrysize
; /* size of a __fpu_q entry */
59 unsigned char __fpu_en
; /* this context valid? */
62 /* `Extra Register State'(?) */
64 unsigned int __xrs_id
; /* See below */
65 unsigned int __xrs_ptr
; /* points into filler area */
69 __gregset32_t __gregs
; /* GPR state */
70 netbsd32___gwindows32p_t __gwins
;/* may point to register windows */
71 __fpregset32_t __fpregs
; /* FPU state, if any */
72 __xrs32_t __xrs
; /* may indicate extra reg state */
75 #define _UC_SETSTACK 0x00010000
76 #define _UC_CLRSTACK 0x00020000
78 #endif /* _SPARC64_MCONTEXT_H_ */