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