2005-04-17 05:20:36 +07:00
|
|
|
/*
|
|
|
|
* S390 version
|
2012-07-20 16:15:04 +07:00
|
|
|
* Copyright IBM Corp. 1999, 2000
|
2005-04-17 05:20:36 +07:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _ASM_S390_SIGCONTEXT_H
|
|
|
|
#define _ASM_S390_SIGCONTEXT_H
|
|
|
|
|
2006-01-15 04:20:58 +07:00
|
|
|
#include <linux/compiler.h>
|
|
|
|
|
2005-04-17 05:20:36 +07:00
|
|
|
#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;
|
|
|
|
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];
|
2005-09-29 06:16:02 +07:00
|
|
|
_sigregs __user *sregs;
|
2005-04-17 05:20:36 +07:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|