forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.7 KiB
85 lines
1.7 KiB
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
|
/* |
|
* S390 version |
|
* Copyright IBM Corp. 1999, 2000 |
|
*/ |
|
|
|
#ifndef _ASM_S390_SIGCONTEXT_H |
|
#define _ASM_S390_SIGCONTEXT_H |
|
|
|
#include <linux/compiler.h> |
|
#include <linux/types.h> |
|
|
|
#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 |
|
|
|
#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; |
|
|
|
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; |
|
|
|
struct sigcontext |
|
{ |
|
unsigned long oldmask[_SIGCONTEXT_NSIG_WORDS]; |
|
_sigregs __user *sregs; |
|
}; |
|
|
|
|
|
#endif |
|
|
|
|