summaryrefslogtreecommitdiffstats
path: root/include/asm-sparc/sigcontext.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-sparc/sigcontext.h')
-rw-r--r--include/asm-sparc/sigcontext.h31
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) */