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, __FUNCTION__ , ##args)
18#else
19#  define DEBUGP(fmt, args...)
20#endif
21
22#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
23
24/*
25 * Determine which stack to use..
26 */
27extern void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
28				 size_t frame_size);
29/*
30 * install trampoline code to get back from the sig handler
31 */
32extern int install_sigtramp(unsigned int __user *tramp, unsigned int syscall);
33
34/* Check and clear pending FPU exceptions in saved CSR */
35extern int fpcsr_pending(unsigned int __user *fpcsr);
36
37/* Make sure we will not lose FPU ownership */
38#ifdef CONFIG_PREEMPT
39#define lock_fpu_owner()	preempt_disable()
40#define unlock_fpu_owner()	preempt_enable()
41#else
42#define lock_fpu_owner()	pagefault_disable()
43#define unlock_fpu_owner()	pagefault_enable()
44#endif
45
46#endif	/* __SIGNAL_COMMON_H */
47