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 38typedef struct 39{ 40 unsigned long mask; 41 unsigned long addr; 42} __attribute__ ((aligned(8))) _psw_t; 43 44typedef struct 45{ 46 _psw_t psw; 47 unsigned long gprs[__NUM_GPRS]; 48 unsigned int acrs[__NUM_ACRS]; 49} _s390_regs_common; 50 51typedef struct 52{ 53 unsigned int fpc; 54 double fprs[__NUM_FPRS]; 55} _s390_fp_regs; 56 57typedef struct 58{ 59 _s390_regs_common regs; 60 _s390_fp_regs fpregs; 61} _sigregs; 62 63struct sigcontext 64{ 65 unsigned long oldmask[_SIGCONTEXT_NSIG_WORDS]; 66 _sigregs __user *sregs; 67}; 68 69 70#endif 71