blob: 6c8e8c4246f754439602790815f88eaa1bb6280a [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-Huu24c556e2007-02-09 16:07:37 +010022#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
23
Franck Bui-Huuc3fc4ab2007-02-05 15:24:20 +010024/*
Linus Torvalds1da177e2005-04-16 15:20:36 -070025 * Determine which stack to use..
26 */
Franck Bui-Huuc3fc4ab2007-02-05 15:24:20 +010027extern 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);
Linus Torvalds1da177e2005-04-16 15:20:36 -070033
Atsushi Nemotoc6a2f462007-03-10 01:03:48 +090034/* Check and clear pending FPU exceptions in saved CSR */
35extern int fpcsr_pending(unsigned int __user *fpcsr);
36
Atsushi Nemotofaea6232007-04-16 23:19:44 +090037/* 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
Franck Bui-Huuc3fc4ab2007-02-05 15:24:20 +010046#endif /* __SIGNAL_COMMON_H */