Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/s390/include/uapi/asm/sigcontext.h
49634 views
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
29
typedef struct
30
{
31
unsigned long mask;
32
unsigned long addr;
33
} __attribute__ ((aligned(8))) _psw_t;
34
35
typedef struct
36
{
37
_psw_t psw;
38
unsigned long gprs[__NUM_GPRS];
39
unsigned int acrs[__NUM_ACRS];
40
} _s390_regs_common;
41
42
typedef struct
43
{
44
unsigned int fpc;
45
unsigned int pad;
46
double fprs[__NUM_FPRS];
47
} _s390_fp_regs;
48
49
typedef struct
50
{
51
_s390_regs_common regs;
52
_s390_fp_regs fpregs;
53
} _sigregs;
54
55
typedef 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
62
struct sigcontext
63
{
64
unsigned long oldmask[_SIGCONTEXT_NSIG_WORDS];
65
_sigregs __user *sregs;
66
};
67
68
69
#endif
70
71
72