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