about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-08-02 20:04:56 +0000
committerUlrich Drepper <drepper@redhat.com>1999-08-02 20:04:56 +0000
commit7b19af689144b165a6c9ddc8445e2762c979c04b (patch)
tree98b052fbb76d367d23270527536e769ae7ff43de /sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
parent249fd241a225b3b3723e55f7051ed4c7bf726e78 (diff)
downloadglibc-7b19af689144b165a6c9ddc8445e2762c979c04b.tar.gz
glibc-7b19af689144b165a6c9ddc8445e2762c979c04b.tar.xz
glibc-7b19af689144b165a6c9ddc8445e2762c979c04b.zip
Update.
1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>

	* sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction):
	Only allow rt signal frames. No SA_SIGINFO signals will have the
	siginfo_t just not filled out with SI_NOINFO code.
	* sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h
	(register_dump): Take the above change into account.
	* sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
	(rt_signal_frame): Likewise.

	* sysdeps/unix/sysv/linux/sparc/getsysstats.c: New file.
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h')
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
index d174c9e779..8430dbcbe1 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sigcontextinfo.h
@@ -17,13 +17,25 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+struct __rt_signal_frame {
+	siginfo_t	sf_info;
+	struct pt_regs	sf_regs;
+	__siginfo_fpu_t *fpu_save;
+	struct {
+		void	*ss_sp;
+		int	ss_flags;
+		size_t	ss_size;
+	}		sf_stack;
+	unsigned long	sf_mask;
+};
+
 #ifndef STACK_BIAS
 #define STACK_BIAS 2047
 #endif
-#define SIGCONTEXT __siginfo_t *
-#define GET_PC(__ctx)	((void *) ((__ctx)->si_regs.tpc))
+#define SIGCONTEXT struct __rt_signal_frame *
+#define GET_PC(__ctx)	((void *) ((__ctx)->sf_regs.tpc))
 #define ADVANCE_STACK_FRAME(__next) \
 	((void *) &((struct reg_window *) (((unsigned long int) (__next))     \
 					   + STACK_BIAS))->ins[6])
-#define GET_STACK(__ctx)	((void *) ((__ctx)->si_regs.u_regs[14]))
+#define GET_STACK(__ctx)	((void *) ((__ctx)->sf_regs.u_regs[14]))
 #define GET_FRAME(__ctx)	ADVANCE_STACK_FRAME (GET_STACK (__ctx))