diff options
Diffstat (limited to 'include/asm-sparc/sigcontext.h')
-rw-r--r-- | include/asm-sparc/sigcontext.h | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/include/asm-sparc/sigcontext.h b/include/asm-sparc/sigcontext.h index 3c85783f1..ff9ccda16 100644 --- a/include/asm-sparc/sigcontext.h +++ b/include/asm-sparc/sigcontext.h @@ -1,18 +1,14 @@ -/* $Id: sigcontext.h,v 1.13 1998/10/06 09:28:35 jj Exp $ */ +/* $Id: sigcontext.h,v 1.14 1999/09/06 08:22:05 jj Exp $ */ #ifndef __SPARC_SIGCONTEXT_H #define __SPARC_SIGCONTEXT_H +#ifdef __KERNEL__ #include <asm/ptrace.h> - -#define SUNOS_MAXWIN 31 +#endif #ifndef __ASSEMBLY__ -/* SunOS system call sigstack() uses this arg. */ -struct sunos_sigstack { - unsigned long sig_sp; - int onstack_flag; -}; +#define __SUNOS_MAXWIN 31 /* This is what SunOS does, so shall I. */ struct sigcontext { @@ -31,14 +27,23 @@ struct sigcontext { int sigc_oswins; /* outstanding windows */ /* stack ptrs for each regwin buf */ - char *sigc_spbuf[SUNOS_MAXWIN]; + char *sigc_spbuf[__SUNOS_MAXWIN]; /* Windows to restore after signal */ - struct reg_window sigc_wbuf[SUNOS_MAXWIN]; + struct { + unsigned long locals[8]; + unsigned long ins[8]; + } sigc_wbuf[__SUNOS_MAXWIN]; }; typedef struct { - struct pt_regs si_regs; + struct { + unsigned long psr; + unsigned long pc; + unsigned long npc; + unsigned long y; + unsigned long u_regs[16]; /* globals and ins */ + } si_regs; int si_mask; } __siginfo_t; @@ -52,6 +57,8 @@ typedef struct { } si_fpqueue [16]; } __siginfo_fpu_t; +#ifdef __KERNEL__ + /* This magic should be in g_upper[0] for all upper parts to be valid. This is generated by sparc64 only, but for 32bit processes, @@ -62,6 +69,8 @@ typedef struct { unsigned int o_upper[8]; } siginfo_extra_v8plus_t; +#endif + #endif /* !(__ASSEMBLY__) */ #endif /* !(__SPARC_SIGCONTEXT_H) */ |