at v6.19 70 lines 1.4 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2/* 3 * S390 version 4 * Copyright IBM Corp. 1999, 2000 5 */ 6 7#ifndef _ASM_S390_SIGCONTEXT_H 8#define _ASM_S390_SIGCONTEXT_H 9 10#include <linux/compiler.h> 11#include <linux/types.h> 12 13#define __NUM_GPRS 16 14#define __NUM_FPRS 16 15#define __NUM_ACRS 16 16#define __NUM_VXRS 32 17#define __NUM_VXRS_LOW 16 18#define __NUM_VXRS_HIGH 16 19 20/* Has to be at least _NSIG_WORDS from asm/signal.h */ 21#define _SIGCONTEXT_NSIG 64 22#define _SIGCONTEXT_NSIG_BPW 64 23/* Size of stack frame allocated when calling signal handler. */ 24#define __SIGNAL_FRAMESIZE 160 25 26#define _SIGCONTEXT_NSIG_WORDS (_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW) 27#define _SIGMASK_COPY_SIZE (sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORDS) 28 29typedef struct 30{ 31 unsigned long mask; 32 unsigned long addr; 33} __attribute__ ((aligned(8))) _psw_t; 34 35typedef struct 36{ 37 _psw_t psw; 38 unsigned long gprs[__NUM_GPRS]; 39 unsigned int acrs[__NUM_ACRS]; 40} _s390_regs_common; 41 42typedef struct 43{ 44 unsigned int fpc; 45 unsigned int pad; 46 double fprs[__NUM_FPRS]; 47} _s390_fp_regs; 48 49typedef struct 50{ 51 _s390_regs_common regs; 52 _s390_fp_regs fpregs; 53} _sigregs; 54 55typedef struct 56{ 57 unsigned long long vxrs_low[__NUM_VXRS_LOW]; 58 __vector128 vxrs_high[__NUM_VXRS_HIGH]; 59 unsigned char __reserved[128]; 60} _sigregs_ext; 61 62struct sigcontext 63{ 64 unsigned long oldmask[_SIGCONTEXT_NSIG_WORDS]; 65 _sigregs __user *sregs; 66}; 67 68 69#endif 70