Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
[linux-2.6] / include / asm-sparc / sigcontext.h
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
4
5 #ifdef __KERNEL__
6 #include <asm/ptrace.h>
7
8 #ifndef __ASSEMBLY__
9
10 #define __SUNOS_MAXWIN   31
11
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. */
22
23         /* Now comes information regarding the users window set
24          * at the time of the signal.
25          */
26         int sigc_oswins;       /* outstanding windows */
27
28         /* stack ptrs for each regwin buf */
29         char *sigc_spbuf[__SUNOS_MAXWIN];
30
31         /* Windows to restore after signal */
32         struct {
33                 unsigned long   locals[8];
34                 unsigned long   ins[8];
35         } sigc_wbuf[__SUNOS_MAXWIN];
36 };
37
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;
48
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;
58
59 #endif /* !(__ASSEMBLY__) */
60
61 #endif /* (__KERNEL__) */
62
63 #endif /* !(__SPARC_SIGCONTEXT_H) */