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#define __NUM_GPRS 16
12#define __NUM_FPRS 16
13#define __NUM_ACRS 16
14
15/*
16  Has to be at least _NSIG_WORDS from asm/signal.h
17 */
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#define _SIGCONTEXT_NSIG_WORDS	(_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW)
23#define _SIGMASK_COPY_SIZE	(sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORDS)
24
25typedef struct
26{
27        unsigned long mask;
28        unsigned long addr;
29} __attribute__ ((aligned(8))) _psw_t;
30
31typedef struct
32{
33	_psw_t psw;
34	unsigned long gprs[__NUM_GPRS];
35	unsigned int  acrs[__NUM_ACRS];
36} _s390_regs_common;
37
38typedef struct
39{
40	unsigned int fpc;
41	double   fprs[__NUM_FPRS];
42} _s390_fp_regs;
43
44typedef struct
45{
46	_s390_regs_common regs;
47	_s390_fp_regs     fpregs;
48} _sigregs;
49
50struct sigcontext
51{
52	unsigned long	oldmask[_SIGCONTEXT_NSIG_WORDS];
53	_sigregs        *sregs;
54};
55
56
57#endif
58
59