blob: f50d48435c6803e0202bc7cb11689eb1e4cd5a83 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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
Franck Bui-Huuc3fc4ab2007-02-05 15:24:20 +010011#ifndef __SIGNAL_COMMON_H
12#define __SIGNAL_COMMON_H
Ralf Baechlee50c0a82005-05-31 11:49:19 +000013
Franck Bui-Huu722bb632007-02-05 15:24:24 +010014/* #define DEBUG_SIG */
15
16#ifdef DEBUG_SIG
Harvey Harrisonbb09a952008-03-28 14:34:39 -070017# define DEBUGP(fmt, args...) printk("%s: " fmt, __func__, ##args)
Franck Bui-Huu722bb632007-02-05 15:24:24 +010018#else
19# define DEBUGP(fmt, args...)
20#endif
21
Franck Bui-Huuc3fc4ab2007-02-05 15:24:20 +010022/*
Linus Torvalds1da177e2005-04-16 15:20:36 -070023 * Determine which stack to use..
24 */
Richard Weinberger81d103b2013-10-06 22:25:42 +020025extern void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
Franck Bui-Huuc3fc4ab2007-02-05 15:24:20 +010026 size_t frame_size);
Atsushi Nemotoc6a2f462007-03-10 01:03:48 +090027/* Check and clear pending FPU exceptions in saved CSR */
28extern int fpcsr_pending(unsigned int __user *fpcsr);
29
Atsushi Nemotofaea6232007-04-16 23:19:44 +090030/* Make sure we will not lose FPU ownership */
David Hildenbrand76deabd2015-05-11 17:52:19 +020031#define lock_fpu_owner() ({ preempt_disable(); pagefault_disable(); })
32#define unlock_fpu_owner() ({ pagefault_enable(); preempt_enable(); })
Atsushi Nemotofaea6232007-04-16 23:19:44 +090033
Paul Burton2db9ca02015-07-27 12:58:15 -070034/* Assembly functions to move context to/from the FPU */
35extern asmlinkage int
36_save_fp_context(void __user *fpregs, void __user *csr);
37extern asmlinkage int
38_restore_fp_context(void __user *fpregs, void __user *csr);
39
Paul Burtonbf82cb32015-07-27 12:58:22 -070040extern asmlinkage int _save_msa_all_upper(void __user *buf);
41extern asmlinkage int _restore_msa_all_upper(void __user *buf);
42
Franck Bui-Huuc3fc4ab2007-02-05 15:24:20 +010043#endif /* __SIGNAL_COMMON_H */