1*3dd681d9SWill Deacon /* 2*3dd681d9SWill Deacon * Copyright (C) 2012 ARM Ltd. 3*3dd681d9SWill Deacon * 4*3dd681d9SWill Deacon * This program is free software; you can redistribute it and/or modify 5*3dd681d9SWill Deacon * it under the terms of the GNU General Public License version 2 as 6*3dd681d9SWill Deacon * published by the Free Software Foundation. 7*3dd681d9SWill Deacon * 8*3dd681d9SWill Deacon * This program is distributed in the hope that it will be useful, 9*3dd681d9SWill Deacon * but WITHOUT ANY WARRANTY; without even the implied warranty of 10*3dd681d9SWill Deacon * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11*3dd681d9SWill Deacon * GNU General Public License for more details. 12*3dd681d9SWill Deacon * 13*3dd681d9SWill Deacon * You should have received a copy of the GNU General Public License 14*3dd681d9SWill Deacon * along with this program. If not, see <http://www.gnu.org/licenses/>. 15*3dd681d9SWill Deacon */ 16*3dd681d9SWill Deacon #ifndef __ASM_SIGNAL32_H 17*3dd681d9SWill Deacon #define __ASM_SIGNAL32_H 18*3dd681d9SWill Deacon 19*3dd681d9SWill Deacon #ifdef __KERNEL__ 20*3dd681d9SWill Deacon #ifdef CONFIG_COMPAT 21*3dd681d9SWill Deacon #include <linux/compat.h> 22*3dd681d9SWill Deacon 23*3dd681d9SWill Deacon #define AARCH32_KERN_SIGRET_CODE_OFFSET 0x500 24*3dd681d9SWill Deacon 25*3dd681d9SWill Deacon extern const compat_ulong_t aarch32_sigret_code[6]; 26*3dd681d9SWill Deacon 27*3dd681d9SWill Deacon int compat_setup_frame(int usig, struct k_sigaction *ka, sigset_t *set, 28*3dd681d9SWill Deacon struct pt_regs *regs); 29*3dd681d9SWill Deacon int compat_setup_rt_frame(int usig, struct k_sigaction *ka, siginfo_t *info, 30*3dd681d9SWill Deacon sigset_t *set, struct pt_regs *regs); 31*3dd681d9SWill Deacon 32*3dd681d9SWill Deacon void compat_setup_restart_syscall(struct pt_regs *regs); 33*3dd681d9SWill Deacon #else 34*3dd681d9SWill Deacon 35*3dd681d9SWill Deacon static inline int compat_setup_frame(int usid, struct k_sigaction *ka, 36*3dd681d9SWill Deacon sigset_t *set, struct pt_regs *regs) 37*3dd681d9SWill Deacon { 38*3dd681d9SWill Deacon return -ENOSYS; 39*3dd681d9SWill Deacon } 40*3dd681d9SWill Deacon 41*3dd681d9SWill Deacon static inline int compat_setup_rt_frame(int usig, struct k_sigaction *ka, 42*3dd681d9SWill Deacon siginfo_t *info, sigset_t *set, 43*3dd681d9SWill Deacon struct pt_regs *regs) 44*3dd681d9SWill Deacon { 45*3dd681d9SWill Deacon return -ENOSYS; 46*3dd681d9SWill Deacon } 47*3dd681d9SWill Deacon 48*3dd681d9SWill Deacon static inline void compat_setup_restart_syscall(struct pt_regs *regs) 49*3dd681d9SWill Deacon { 50*3dd681d9SWill Deacon } 51*3dd681d9SWill Deacon #endif /* CONFIG_COMPAT */ 52*3dd681d9SWill Deacon #endif /* __KERNEL__ */ 53*3dd681d9SWill Deacon #endif /* __ASM_SIGNAL32_H */ 54