| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  *  S390 version | 
					
						
							| 
									
										
										
										
											2012-07-20 11:15:04 +02:00
										 |  |  |  *    Copyright IBM Corp. 1999, 2000 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef _ASM_S390_SIGCONTEXT_H
 | 
					
						
							|  |  |  | #define _ASM_S390_SIGCONTEXT_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-01-14 13:20:58 -08:00
										 |  |  | #include <linux/compiler.h>
 | 
					
						
							| 
									
										
										
										
											2014-10-06 17:53:53 +02:00
										 |  |  | #include <linux/types.h>
 | 
					
						
							| 
									
										
										
										
											2006-01-14 13:20:58 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-06 17:53:53 +02:00
										 |  |  | #define __NUM_GPRS		16
 | 
					
						
							|  |  |  | #define __NUM_FPRS		16
 | 
					
						
							|  |  |  | #define __NUM_ACRS		16
 | 
					
						
							|  |  |  | #define __NUM_VXRS		32
 | 
					
						
							|  |  |  | #define __NUM_VXRS_LOW		16
 | 
					
						
							|  |  |  | #define __NUM_VXRS_HIGH		16
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifndef __s390x__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Has to be at least _NSIG_WORDS from asm/signal.h */ | 
					
						
							|  |  |  | #define _SIGCONTEXT_NSIG	64
 | 
					
						
							|  |  |  | #define _SIGCONTEXT_NSIG_BPW	32
 | 
					
						
							|  |  |  | /* Size of stack frame allocated when calling signal handler. */ | 
					
						
							|  |  |  | #define __SIGNAL_FRAMESIZE	96
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #else /* __s390x__ */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Has to be at least _NSIG_WORDS from asm/signal.h */ | 
					
						
							|  |  |  | #define _SIGCONTEXT_NSIG	64
 | 
					
						
							|  |  |  | #define _SIGCONTEXT_NSIG_BPW	64 
 | 
					
						
							|  |  |  | /* Size of stack frame allocated when calling signal handler. */ | 
					
						
							|  |  |  | #define __SIGNAL_FRAMESIZE	160
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* __s390x__ */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #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; | 
					
						
							|  |  |  | } __attribute__ ((aligned(8))) _psw_t; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	_psw_t psw; | 
					
						
							|  |  |  | 	unsigned long gprs[__NUM_GPRS]; | 
					
						
							|  |  |  | 	unsigned int  acrs[__NUM_ACRS]; | 
					
						
							|  |  |  | } _s390_regs_common; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	unsigned int fpc; | 
					
						
							| 
									
										
										
										
											2013-10-15 16:08:34 +02:00
										 |  |  | 	unsigned int pad; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 	double   fprs[__NUM_FPRS]; | 
					
						
							|  |  |  | } _s390_fp_regs; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	_s390_regs_common regs; | 
					
						
							|  |  |  | 	_s390_fp_regs     fpregs; | 
					
						
							|  |  |  | } _sigregs; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-06 17:53:53 +02:00
										 |  |  | typedef struct | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | #ifndef __s390x__
 | 
					
						
							|  |  |  | 	unsigned long gprs_high[__NUM_GPRS]; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 	unsigned long long vxrs_low[__NUM_VXRS_LOW]; | 
					
						
							|  |  |  | 	__vector128 vxrs_high[__NUM_VXRS_HIGH]; | 
					
						
							|  |  |  | 	unsigned char __reserved[128]; | 
					
						
							|  |  |  | } _sigregs_ext; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | struct sigcontext | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	unsigned long	oldmask[_SIGCONTEXT_NSIG_WORDS]; | 
					
						
							| 
									
										
										
										
											2005-09-29 00:16:02 +01:00
										 |  |  | 	_sigregs        __user *sregs; | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 |