linux/arch/s390/include/asm/sigcontext.h
<<
>>
Prefs
   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
  72