linux/arch/mips/include/asm/sigcontext.h
<<
>>
Prefs
   1/*
   2 * This file is subject to the terms and conditions of the GNU General Public
   3 * License.  See the file "COPYING" in the main directory of this archive
   4 * for more details.
   5 *
   6 * Copyright (C) 1996, 1997, 1999 by Ralf Baechle
   7 * Copyright (C) 1999 Silicon Graphics, Inc.
   8 */
   9#ifndef _ASM_SIGCONTEXT_H
  10#define _ASM_SIGCONTEXT_H
  11
  12#include <linux/types.h>
  13#include <asm/sgidefs.h>
  14
  15#if _MIPS_SIM == _MIPS_SIM_ABI32
  16
  17/*
  18 * Keep this struct definition in sync with the sigcontext fragment
  19 * in arch/mips/tools/offset.c
  20 */
  21struct sigcontext {
  22        unsigned int            sc_regmask;     /* Unused */
  23        unsigned int            sc_status;      /* Unused */
  24        unsigned long long      sc_pc;
  25        unsigned long long      sc_regs[32];
  26        unsigned long long      sc_fpregs[32];
  27        unsigned int            sc_acx;         /* Was sc_ownedfp */
  28        unsigned int            sc_fpc_csr;
  29        unsigned int            sc_fpc_eir;     /* Unused */
  30        unsigned int            sc_used_math;
  31        unsigned int            sc_dsp;         /* dsp status, was sc_ssflags */
  32        unsigned long long      sc_mdhi;
  33        unsigned long long      sc_mdlo;
  34        unsigned long           sc_hi1;         /* Was sc_cause */
  35        unsigned long           sc_lo1;         /* Was sc_badvaddr */
  36        unsigned long           sc_hi2;         /* Was sc_sigset[4] */
  37        unsigned long           sc_lo2;
  38        unsigned long           sc_hi3;
  39        unsigned long           sc_lo3;
  40};
  41
  42#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
  43
  44#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
  45
  46#include <linux/posix_types.h>
  47/*
  48 * Keep this struct definition in sync with the sigcontext fragment
  49 * in arch/mips/tools/offset.c
  50 *
  51 * Warning: this structure illdefined with sc_badvaddr being just an unsigned
  52 * int so it was changed to unsigned long in 2.6.0-test1.  This may break
  53 * binary compatibility - no prisoners.
  54 * DSP ASE in 2.6.12-rc4.  Turn sc_mdhi and sc_mdlo into an array of four
  55 * entries, add sc_dsp and sc_reserved for padding.  No prisoners.
  56 */
  57struct sigcontext {
  58        __u64   sc_regs[32];
  59        __u64   sc_fpregs[32];
  60        __u64   sc_mdhi;
  61        __u64   sc_hi1;
  62        __u64   sc_hi2;
  63        __u64   sc_hi3;
  64        __u64   sc_mdlo;
  65        __u64   sc_lo1;
  66        __u64   sc_lo2;
  67        __u64   sc_lo3;
  68        __u64   sc_pc;
  69        __u32   sc_fpc_csr;
  70        __u32   sc_used_math;
  71        __u32   sc_dsp;
  72        __u32   sc_reserved;
  73};
  74
  75#ifdef __KERNEL__
  76
  77struct sigcontext32 {
  78        __u32           sc_regmask;     /* Unused */
  79        __u32           sc_status;      /* Unused */
  80        __u64           sc_pc;
  81        __u64           sc_regs[32];
  82        __u64           sc_fpregs[32];
  83        __u32           sc_acx;         /* Only MIPS32; was sc_ownedfp */
  84        __u32           sc_fpc_csr;
  85        __u32           sc_fpc_eir;     /* Unused */
  86        __u32           sc_used_math;
  87        __u32           sc_dsp;         /* dsp status, was sc_ssflags */
  88        __u64           sc_mdhi;
  89        __u64           sc_mdlo;
  90        __u32           sc_hi1;         /* Was sc_cause */
  91        __u32           sc_lo1;         /* Was sc_badvaddr */
  92        __u32           sc_hi2;         /* Was sc_sigset[4] */
  93        __u32           sc_lo2;
  94        __u32           sc_hi3;
  95        __u32           sc_lo3;
  96};
  97#endif /* __KERNEL__ */
  98
  99#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
 100
 101#endif /* _ASM_SIGCONTEXT_H */
 102