patch-2.2.18 linux/include/asm-s390/sigcontext.h

Next file: linux/include/asm-s390/sigp.h
Previous file: linux/include/asm-s390/semaphore.h
Back to the patch index
Back to the overall index

diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/include/asm-s390/sigcontext.h linux/include/asm-s390/sigcontext.h
@@ -7,7 +7,10 @@
 
 #ifndef _ASM_S390_SIGCONTEXT_H
 #define _ASM_S390_SIGCONTEXT_H
-#include <asm/s390-regs-common.h>
+
+#define __NUM_GPRS 16
+#define __NUM_FPRS 16
+#define __NUM_ACRS 16
 
 /*
   Has to be at least _NSIG_WORDS from asm/signal.h
@@ -15,20 +18,39 @@
 #define _SIGCONTEXT_NSIG      64
 #define _SIGCONTEXT_NSIG_BPW  32
 /* Size of stack frame allocated when calling signal handler. */
-#define __SIGNAL_FRAMESIZE      STACK_FRAME_OVERHEAD
-#define _SIGCONTEXT_NSIG_WORDS  (_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW)
-#define SIGMASK_COPY_SIZE       (sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORDS)
+#define __SIGNAL_FRAMESIZE	96
+#define _SIGCONTEXT_NSIG_WORDS	(_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW)
+#define _SIGMASK_COPY_SIZE	(sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORDS)
+
+typedef struct 
+{
+        unsigned long mask;
+        unsigned long addr;
+} _psw_t __attribute__ ((aligned(8)));
+
+typedef struct
+{
+	_psw_t psw;
+	unsigned long gprs[__NUM_GPRS];
+	unsigned int  acrs[__NUM_ACRS];
+} _s390_regs_common __attribute__ ((packed));
+
+typedef struct
+{
+	unsigned int fpc;
+	double   fprs[__NUM_FPRS];
+} _s390_fp_regs;
 
 typedef struct
 {
-	s390_regs_common regs;
-	s390_fp_regs     fpregs;
-} sigregs;
+	_s390_regs_common regs;
+	_s390_fp_regs     fpregs;
+} _sigregs;
 
 struct sigcontext
 {
 	unsigned long	oldmask[_SIGCONTEXT_NSIG_WORDS];
-	sigregs         *sregs;
+	_sigregs        *sregs;
 };
 
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)