From 19c9bba94152148523ba0f7ef7cffe3d45656b11 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Tue, 29 Apr 1997 21:13:14 +0000 Subject: Import of Linux/MIPS 2.1.36 --- include/asm-sparc64/sigcontext.h | 102 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 include/asm-sparc64/sigcontext.h (limited to 'include/asm-sparc64/sigcontext.h') diff --git a/include/asm-sparc64/sigcontext.h b/include/asm-sparc64/sigcontext.h new file mode 100644 index 000000000..9d35493d9 --- /dev/null +++ b/include/asm-sparc64/sigcontext.h @@ -0,0 +1,102 @@ +/* $Id: sigcontext.h,v 1.4 1997/04/04 00:50:28 davem Exp $ */ +#ifndef __SPARC64_SIGCONTEXT_H +#define __SPARC64_SIGCONTEXT_H + +#include + +/* XXX This gets exported to userland as well as kernel, it is probably + * XXX riddled with many hard to find 32-bit binary compatability issues. + * XXX Signals and this file need to be investigated heavily. -DaveM + */ + +#define SUNOS_MAXWIN 31 + +#ifndef __ASSEMBLY__ + +/* SunOS system call sigstack() uses this arg. */ +struct sunos_sigstack { + unsigned int sig_sp; + int onstack_flag; +}; + +/* This is what SunOS does, so shall I. */ +struct sigcontext32 { + int sigc_onstack; /* state to restore */ + int sigc_mask; /* sigmask to restore */ + int sigc_sp; /* stack pointer */ + int sigc_pc; /* program counter */ + int sigc_npc; /* next program counter */ + int sigc_psr; /* for condition codes etc */ + int sigc_g1; /* User uses these two registers */ + int sigc_o0; /* within the trampoline code. */ + + /* Now comes information regarding the users window set + * at the time of the signal. + */ + int sigc_oswins; /* outstanding windows */ + + /* stack ptrs for each regwin buf */ + /* XXX 32-bit ptrs pinhead... */ + unsigned sigc_spbuf[SUNOS_MAXWIN]; + + /* Windows to restore after signal */ + struct reg_window32 sigc_wbuf[SUNOS_MAXWIN]; +}; + +/* This is what SunOS doesn't, so we have to write this alone. */ +struct sigcontext { + int sigc_onstack; /* state to restore */ + int sigc_mask; /* sigmask to restore */ + int sigc_sp; /* stack pointer */ + int sigc_pc; /* program counter */ + int sigc_npc; /* next program counter */ + int sigc_psr; /* for condition codes etc */ + int sigc_g1; /* User uses these two registers */ + int sigc_o0; /* within the trampoline code. */ + + /* Now comes information regarding the users window set + * at the time of the signal. + */ + int sigc_oswins; /* outstanding windows */ + + /* stack ptrs for each regwin buf */ + char *sigc_spbuf[SUNOS_MAXWIN]; + + /* Windows to restore after signal */ + struct reg_window sigc_wbuf[SUNOS_MAXWIN]; +}; + +typedef struct { + struct pt_regs32 si_regs; + int si_mask; +} __siginfo32_t; + +typedef struct { + unsigned int si_float_regs [32]; + unsigned int si_fsr; + unsigned int si_fpqdepth; + struct { + unsigned int *insn_addr; + unsigned int insn; + } si_fpqueue [16]; +} __siginfo_fpu32_t; + + +typedef struct { + struct pt_regs si_regs; + int si_mask; +} __siginfo_t; + +typedef struct { + unsigned int si_float_regs [64]; + unsigned long si_fsr; + unsigned int si_fpqdepth; + struct { + unsigned int *insn_addr; + unsigned int insn; + } si_fpqueue [16]; +} __siginfo_fpu_t; + +#endif /* !(__ASSEMBLY__) */ + +#endif /* !(__SPARC64_SIGCONTEXT_H) */ -- cgit v1.2.3