cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sigcontext.h (1772B)


      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#ifndef __s390x__
     21
     22/* Has to be at least _NSIG_WORDS from asm/signal.h */
     23#define _SIGCONTEXT_NSIG	64
     24#define _SIGCONTEXT_NSIG_BPW	32
     25/* Size of stack frame allocated when calling signal handler. */
     26#define __SIGNAL_FRAMESIZE	96
     27
     28#else /* __s390x__ */
     29
     30/* Has to be at least _NSIG_WORDS from asm/signal.h */
     31#define _SIGCONTEXT_NSIG	64
     32#define _SIGCONTEXT_NSIG_BPW	64 
     33/* Size of stack frame allocated when calling signal handler. */
     34#define __SIGNAL_FRAMESIZE	160
     35
     36#endif /* __s390x__ */
     37
     38#define _SIGCONTEXT_NSIG_WORDS	(_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW)
     39#define _SIGMASK_COPY_SIZE	(sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORDS)
     40
     41typedef struct 
     42{
     43        unsigned long mask;
     44        unsigned long addr;
     45} __attribute__ ((aligned(8))) _psw_t;
     46
     47typedef struct
     48{
     49	_psw_t psw;
     50	unsigned long gprs[__NUM_GPRS];
     51	unsigned int  acrs[__NUM_ACRS];
     52} _s390_regs_common;
     53
     54typedef struct
     55{
     56	unsigned int fpc;
     57	unsigned int pad;
     58	double   fprs[__NUM_FPRS];
     59} _s390_fp_regs;
     60
     61typedef struct
     62{
     63	_s390_regs_common regs;
     64	_s390_fp_regs     fpregs;
     65} _sigregs;
     66
     67typedef struct
     68{
     69#ifndef __s390x__
     70	unsigned long gprs_high[__NUM_GPRS];
     71#endif
     72	unsigned long long vxrs_low[__NUM_VXRS_LOW];
     73	__vector128 vxrs_high[__NUM_VXRS_HIGH];
     74	unsigned char __reserved[128];
     75} _sigregs_ext;
     76
     77struct sigcontext
     78{
     79	unsigned long	oldmask[_SIGCONTEXT_NSIG_WORDS];
     80	_sigregs        __user *sregs;
     81};
     82
     83
     84#endif
     85