11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/* 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * This file is subject to the terms and conditions of the GNU General Public 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * License. See the file "COPYING" in the main directory of this archive 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * for more details. 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 1991, 1992 Linus Torvalds 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 1994 - 2000 Ralf Baechle 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Copyright (C) 1999, 2000 Silicon Graphics, Inc. 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 11c3fc4ab36d495f50ccc89986fe32eeabc2549fa1Franck Bui-Huu#ifndef __SIGNAL_COMMON_H 12c3fc4ab36d495f50ccc89986fe32eeabc2549fa1Franck Bui-Huu#define __SIGNAL_COMMON_H 13e50c0a8fa60da9ac0e0a70caa8a3a803815c1f2fRalf Baechle 14722bb63de630f9500db1f12ed32e1dd9349a8049Franck Bui-Huu/* #define DEBUG_SIG */ 15722bb63de630f9500db1f12ed32e1dd9349a8049Franck Bui-Huu 16722bb63de630f9500db1f12ed32e1dd9349a8049Franck Bui-Huu#ifdef DEBUG_SIG 17bb09a954b64c61b691c095e0a20708265b5bc2bcHarvey Harrison# define DEBUGP(fmt, args...) printk("%s: " fmt, __func__, ##args) 18722bb63de630f9500db1f12ed32e1dd9349a8049Franck Bui-Huu#else 19722bb63de630f9500db1f12ed32e1dd9349a8049Franck Bui-Huu# define DEBUGP(fmt, args...) 20722bb63de630f9500db1f12ed32e1dd9349a8049Franck Bui-Huu#endif 21722bb63de630f9500db1f12ed32e1dd9349a8049Franck Bui-Huu 22c3fc4ab36d495f50ccc89986fe32eeabc2549fa1Franck Bui-Huu/* 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * Determine which stack to use.. 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */ 2581d103bf80678669c56658185e758fc3f9845d71Richard Weinbergerextern void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, 26c3fc4ab36d495f50ccc89986fe32eeabc2549fa1Franck Bui-Huu size_t frame_size); 27c6a2f4679331206ef5d353fc9a6cda2fa4aef8c6Atsushi Nemoto/* Check and clear pending FPU exceptions in saved CSR */ 28c6a2f4679331206ef5d353fc9a6cda2fa4aef8c6Atsushi Nemotoextern int fpcsr_pending(unsigned int __user *fpcsr); 29c6a2f4679331206ef5d353fc9a6cda2fa4aef8c6Atsushi Nemoto 30faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto/* Make sure we will not lose FPU ownership */ 31faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto#ifdef CONFIG_PREEMPT 32faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto#define lock_fpu_owner() preempt_disable() 33faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto#define unlock_fpu_owner() preempt_enable() 34faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto#else 35faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto#define lock_fpu_owner() pagefault_disable() 36faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto#define unlock_fpu_owner() pagefault_enable() 37faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto#endif 38faea62346444ce5b1dba8fb5291d95b676522c42Atsushi Nemoto 39c3fc4ab36d495f50ccc89986fe32eeabc2549fa1Franck Bui-Huu#endif /* __SIGNAL_COMMON_H */ 40