MIPS: Save MSA extended context around signals
[linux-drm-fsl-dcu.git] / arch / mips / kernel / signal-common.h
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) 1991, 1992  Linus Torvalds
7  * Copyright (C) 1994 - 2000  Ralf Baechle
8  * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
9  */
10
11 #ifndef __SIGNAL_COMMON_H
12 #define __SIGNAL_COMMON_H
13
14 /* #define DEBUG_SIG */
15
16 #ifdef DEBUG_SIG
17 #  define DEBUGP(fmt, args...) printk("%s: " fmt, __func__, ##args)
18 #else
19 #  define DEBUGP(fmt, args...)
20 #endif
21
22 /*
23  * Determine which stack to use..
24  */
25 extern void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
26                                  size_t frame_size);
27 /* Check and clear pending FPU exceptions in saved CSR */
28 extern int fpcsr_pending(unsigned int __user *fpcsr);
29
30 /* Make sure we will not lose FPU ownership */
31 #define lock_fpu_owner()        ({ preempt_disable(); pagefault_disable(); })
32 #define unlock_fpu_owner()      ({ pagefault_enable(); preempt_enable(); })
33
34 /* Assembly functions to move context to/from the FPU */
35 extern asmlinkage int
36 _save_fp_context(void __user *fpregs, void __user *csr);
37 extern asmlinkage int
38 _restore_fp_context(void __user *fpregs, void __user *csr);
39
40 extern asmlinkage int _save_msa_all_upper(void __user *buf);
41 extern asmlinkage int _restore_msa_all_upper(void __user *buf);
42
43 #endif  /* __SIGNAL_COMMON_H */