Linux-2.6.12-rc2
[linux-2.6/next.git] / include / asm-sparc / sigcontext.h
blob7fa2c7d01ab4b56ce488af3e5c6516a6354df6b6
1 /* $Id: sigcontext.h,v 1.14 1999/09/06 08:22:05 jj Exp $ */
2 #ifndef __SPARC_SIGCONTEXT_H
3 #define __SPARC_SIGCONTEXT_H
5 #ifdef __KERNEL__
6 #include <asm/ptrace.h>
8 #ifndef __ASSEMBLY__
10 #define __SUNOS_MAXWIN 31
12 /* This is what SunOS does, so shall I. */
13 struct sigcontext {
14 int sigc_onstack; /* state to restore */
15 int sigc_mask; /* sigmask to restore */
16 int sigc_sp; /* stack pointer */
17 int sigc_pc; /* program counter */
18 int sigc_npc; /* next program counter */
19 int sigc_psr; /* for condition codes etc */
20 int sigc_g1; /* User uses these two registers */
21 int sigc_o0; /* within the trampoline code. */
23 /* Now comes information regarding the users window set
24 * at the time of the signal.
26 int sigc_oswins; /* outstanding windows */
28 /* stack ptrs for each regwin buf */
29 char *sigc_spbuf[__SUNOS_MAXWIN];
31 /* Windows to restore after signal */
32 struct {
33 unsigned long locals[8];
34 unsigned long ins[8];
35 } sigc_wbuf[__SUNOS_MAXWIN];
38 typedef struct {
39 struct {
40 unsigned long psr;
41 unsigned long pc;
42 unsigned long npc;
43 unsigned long y;
44 unsigned long u_regs[16]; /* globals and ins */
45 } si_regs;
46 int si_mask;
47 } __siginfo_t;
49 typedef struct {
50 unsigned long si_float_regs [32];
51 unsigned long si_fsr;
52 unsigned long si_fpqdepth;
53 struct {
54 unsigned long *insn_addr;
55 unsigned long insn;
56 } si_fpqueue [16];
57 } __siginfo_fpu_t;
59 #endif /* !(__ASSEMBLY__) */
61 #endif /* (__KERNEL__) */
63 #endif /* !(__SPARC_SIGCONTEXT_H) */