12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1991, 1992 Linus Torvalds
- * Copyright (C) 1994 - 2000 Ralf Baechle
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- */
- #ifndef __SIGNAL_COMMON_H
- #define __SIGNAL_COMMON_H
- /* #define DEBUG_SIG */
- #ifdef DEBUG_SIG
- # define DEBUGP(fmt, args...) printk("%s: " fmt, __FUNCTION__ , ##args)
- #else
- # define DEBUGP(fmt, args...)
- #endif
- /*
- * Horribly complicated - with the bloody RM9000 workarounds enabled
- * the signal trampolines is moving to the end of the structure so we can
- * increase the alignment without breaking software compatibility.
- */
- #if ICACHE_REFILLS_WORKAROUND_WAR == 0
- struct sigframe {
- u32 sf_ass[4]; /* argument save space for o32 */
- u32 sf_code[2]; /* signal trampoline */
- struct sigcontext sf_sc;
- sigset_t sf_mask;
- };
- #else /* ICACHE_REFILLS_WORKAROUND_WAR */
- struct sigframe {
- u32 sf_ass[4]; /* argument save space for o32 */
- u32 sf_pad[2];
- struct sigcontext sf_sc; /* hw context */
- sigset_t sf_mask;
- u32 sf_code[8] ____cacheline_aligned; /* signal trampoline */
- };
- #endif /* !ICACHE_REFILLS_WORKAROUND_WAR */
- /*
- * handle hardware context
- */
- extern int setup_sigcontext(struct pt_regs *, struct sigcontext __user *);
- extern int restore_sigcontext(struct pt_regs *, struct sigcontext __user *);
- /*
- * Determine which stack to use..
- */
- extern void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
- size_t frame_size);
- /*
- * install trampoline code to get back from the sig handler
- */
- extern int install_sigtramp(unsigned int __user *tramp, unsigned int syscall);
- #endif /* __SIGNAL_COMMON_H */
|