diff options
Diffstat (limited to 'arch/s390/include/uapi/asm/sigcontext.h')
| -rw-r--r-- | arch/s390/include/uapi/asm/sigcontext.h | 70 | 
1 files changed, 70 insertions, 0 deletions
diff --git a/arch/s390/include/uapi/asm/sigcontext.h b/arch/s390/include/uapi/asm/sigcontext.h new file mode 100644 index 00000000000..b30de9c01bb --- /dev/null +++ b/arch/s390/include/uapi/asm/sigcontext.h @@ -0,0 +1,70 @@ +/* + *  S390 version + *    Copyright IBM Corp. 1999, 2000 + */ + +#ifndef _ASM_S390_SIGCONTEXT_H +#define _ASM_S390_SIGCONTEXT_H + +#include <linux/compiler.h> + +#define __NUM_GPRS 16 +#define __NUM_FPRS 16 +#define __NUM_ACRS 16 + +#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; +	unsigned int pad; +	double   fprs[__NUM_FPRS]; +} _s390_fp_regs; + +typedef struct +{ +	_s390_regs_common regs; +	_s390_fp_regs     fpregs; +} _sigregs; + +struct sigcontext +{ +	unsigned long	oldmask[_SIGCONTEXT_NSIG_WORDS]; +	_sigregs        __user *sregs; +}; + + +#endif +  | 
