2007-06-04 15:15:49 +10:00
/*
2016-02-24 10:51:11 -08:00
* Copyright ( c ) 2007 Benjamin Herrenschmidt , IBM Corporation
2007-06-04 15:15:49 +10: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
2012-02-22 16:48:32 +11:00
extern void do_notify_resume ( struct pt_regs * regs , unsigned long thread_info_flags ) ;
2008-08-18 00:12:41 -04:00
2014-03-02 14:46:11 +01:00
extern void __user * get_sigframe ( struct ksignal * ksig , unsigned long sp ,
2009-03-25 06:23:59 +00:00
size_t frame_size , int is_32 ) ;
2007-06-04 15:15:52 +10:00
2014-03-02 14:46:11 +01:00
extern int handle_signal32 ( struct ksignal * ksig , sigset_t * oldset ,
2016-09-23 16:18:12 +10:00
struct task_struct * tsk ) ;
2007-06-04 15:15:52 +10:00
2014-03-02 14:46:11 +01:00
extern int handle_rt_signal32 ( struct ksignal * ksig , sigset_t * oldset ,
2016-09-23 16:18:12 +10:00
struct task_struct * tsk ) ;
2007-06-04 15:15:52 +10:00
2008-07-02 14:06:37 +10:00
extern unsigned long copy_fpr_to_user ( void __user * to ,
struct task_struct * task ) ;
2016-09-23 16:18:25 +10:00
extern unsigned long copy_ckfpr_to_user ( void __user * to ,
2013-02-13 16:21:41 +00:00
struct task_struct * task ) ;
2008-07-02 14:06:37 +10:00
extern unsigned long copy_fpr_from_user ( struct task_struct * task ,
void __user * from ) ;
2016-09-23 16:18:25 +10:00
extern unsigned long copy_ckfpr_from_user ( struct task_struct * task ,
2013-02-13 16:21:41 +00:00
void __user * from ) ;
2016-09-23 16:18:12 +10:00
extern unsigned long get_tm_stackpointer ( struct task_struct * tsk ) ;
2008-07-02 14:06:37 +10:00
# ifdef CONFIG_VSX
extern unsigned long copy_vsx_to_user ( void __user * to ,
struct task_struct * task ) ;
2016-09-23 16:18:25 +10:00
extern unsigned long copy_ckvsx_to_user ( void __user * to ,
2013-02-13 16:21:41 +00:00
struct task_struct * task ) ;
2008-07-02 14:06:37 +10:00
extern unsigned long copy_vsx_from_user ( struct task_struct * task ,
void __user * from ) ;
2016-09-23 16:18:25 +10:00
extern unsigned long copy_ckvsx_from_user ( struct task_struct * task ,
2013-02-13 16:21:41 +00:00
void __user * from ) ;
2008-07-02 14:06:37 +10:00
# endif
2007-06-04 15:15:56 +10:00
# ifdef CONFIG_PPC64
2014-03-02 14:46:11 +01:00
extern int handle_rt_signal64 ( struct ksignal * ksig , sigset_t * set ,
2016-09-23 16:18:12 +10:00
struct task_struct * tsk ) ;
2007-06-04 15:15:49 +10:00
2007-06-04 15:15:56 +10:00
# else /* CONFIG_PPC64 */
2018-05-02 23:20:47 +10:00
extern long sys_rt_sigreturn ( void ) ;
extern long sys_sigreturn ( void ) ;
2018-02-25 18:22:33 +01:00
2014-03-02 14:46:11 +01:00
static inline int handle_rt_signal64 ( struct ksignal * ksig , sigset_t * set ,
2016-09-23 16:18:12 +10:00
struct task_struct * tsk )
2007-06-04 15:15:56 +10:00
{
return - EFAULT ;
}
# endif /* !defined(CONFIG_PPC64) */
2007-06-04 15:15:49 +10:00
# endif /* _POWERPC_ARCH_SIGNAL_H */