2007-06-04 09:15:49 +04:00
/*
2016-02-24 21:51:11 +03:00
* Copyright ( c ) 2007 Benjamin Herrenschmidt , IBM Corporation
2007-06-04 09:15:49 +04:00
* Extracted from signal_32 . c and signal_64 . c
*
* This file is subject to the terms and conditions of the GNU General
* Public License . See the file README . legal in the main directory of
* this archive for more details .
*/
# ifndef _POWERPC_ARCH_SIGNAL_H
# define _POWERPC_ARCH_SIGNAL_H
2014-03-02 17:46:11 +04:00
extern void __user * get_sigframe ( struct ksignal * ksig , unsigned long sp ,
2009-03-25 09:23:59 +03:00
size_t frame_size , int is_32 ) ;
2007-06-04 09:15:52 +04:00
2014-03-02 17:46:11 +04:00
extern int handle_signal32 ( struct ksignal * ksig , sigset_t * oldset ,
2016-09-23 09:18:12 +03:00
struct task_struct * tsk ) ;
2007-06-04 09:15:52 +04:00
2014-03-02 17:46:11 +04:00
extern int handle_rt_signal32 ( struct ksignal * ksig , sigset_t * oldset ,
2016-09-23 09:18:12 +03:00
struct task_struct * tsk ) ;
2007-06-04 09:15:52 +04:00
2008-07-02 08:06:37 +04:00
extern unsigned long copy_fpr_to_user ( void __user * to ,
struct task_struct * task ) ;
2016-09-23 09:18:25 +03:00
extern unsigned long copy_ckfpr_to_user ( void __user * to ,
2013-02-13 20:21:41 +04:00
struct task_struct * task ) ;
2008-07-02 08:06:37 +04:00
extern unsigned long copy_fpr_from_user ( struct task_struct * task ,
void __user * from ) ;
2016-09-23 09:18:25 +03:00
extern unsigned long copy_ckfpr_from_user ( struct task_struct * task ,
2013-02-13 20:21:41 +04:00
void __user * from ) ;
2016-09-23 09:18:12 +03:00
extern unsigned long get_tm_stackpointer ( struct task_struct * tsk ) ;
2008-07-02 08:06:37 +04:00
# ifdef CONFIG_VSX
extern unsigned long copy_vsx_to_user ( void __user * to ,
struct task_struct * task ) ;
2016-09-23 09:18:25 +03:00
extern unsigned long copy_ckvsx_to_user ( void __user * to ,
2013-02-13 20:21:41 +04:00
struct task_struct * task ) ;
2008-07-02 08:06:37 +04:00
extern unsigned long copy_vsx_from_user ( struct task_struct * task ,
void __user * from ) ;
2016-09-23 09:18:25 +03:00
extern unsigned long copy_ckvsx_from_user ( struct task_struct * task ,
2013-02-13 20:21:41 +04:00
void __user * from ) ;
2008-07-02 08:06:37 +04:00
# endif
2007-06-04 09:15:56 +04:00
# ifdef CONFIG_PPC64
2014-03-02 17:46:11 +04:00
extern int handle_rt_signal64 ( struct ksignal * ksig , sigset_t * set ,
2016-09-23 09:18:12 +03:00
struct task_struct * tsk ) ;
2007-06-04 09:15:49 +04:00
2007-06-04 09:15:56 +04:00
# else /* CONFIG_PPC64 */
2018-05-02 16:20:47 +03:00
extern long sys_rt_sigreturn ( void ) ;
extern long sys_sigreturn ( void ) ;
2018-02-25 20:22:33 +03:00
2014-03-02 17:46:11 +04:00
static inline int handle_rt_signal64 ( struct ksignal * ksig , sigset_t * set ,
2016-09-23 09:18:12 +03:00
struct task_struct * tsk )
2007-06-04 09:15:56 +04:00
{
return - EFAULT ;
}
# endif /* !defined(CONFIG_PPC64) */
2007-06-04 09:15:49 +04:00
# endif /* _POWERPC_ARCH_SIGNAL_H */