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