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 extern int setup_sigcontext(struct pt_regs *, struct sigcontext __user *); 44 extern int restore_sigcontext(struct pt_regs *, struct sigcontext __user *); 45 46 #endif /* __SIGNAL_COMMON_H */ 47