xref: /openbmc/linux/arch/powerpc/kernel/ptrace/ptrace-decl.h (revision 60ef9dbd9d2ada53f488f75ae7fef13bb4962636)
17b99ed4eSChristophe Leroy /* SPDX-License-Identifier: GPL-2.0-or-later */
27b99ed4eSChristophe Leroy 
37b99ed4eSChristophe Leroy /* ptrace-(no)vsx */
47b99ed4eSChristophe Leroy 
57b99ed4eSChristophe Leroy int fpr_get(struct task_struct *target, const struct user_regset *regset,
67b99ed4eSChristophe Leroy 	    unsigned int pos, unsigned int count, void *kbuf, void __user *ubuf);
77b99ed4eSChristophe Leroy int fpr_set(struct task_struct *target, const struct user_regset *regset,
87b99ed4eSChristophe Leroy 	    unsigned int pos, unsigned int count,
97b99ed4eSChristophe Leroy 	    const void *kbuf, const void __user *ubuf);
107b99ed4eSChristophe Leroy 
117b99ed4eSChristophe Leroy /* ptrace-vsx */
127b99ed4eSChristophe Leroy 
137b99ed4eSChristophe Leroy int vsr_active(struct task_struct *target, const struct user_regset *regset);
147b99ed4eSChristophe Leroy int vsr_get(struct task_struct *target, const struct user_regset *regset,
157b99ed4eSChristophe Leroy 	    unsigned int pos, unsigned int count, void *kbuf, void __user *ubuf);
167b99ed4eSChristophe Leroy int vsr_set(struct task_struct *target, const struct user_regset *regset,
177b99ed4eSChristophe Leroy 	    unsigned int pos, unsigned int count,
187b99ed4eSChristophe Leroy 	    const void *kbuf, const void __user *ubuf);
197b99ed4eSChristophe Leroy 
201b20773bSChristophe Leroy /* ptrace-altivec */
211b20773bSChristophe Leroy 
221b20773bSChristophe Leroy int vr_active(struct task_struct *target, const struct user_regset *regset);
231b20773bSChristophe Leroy int vr_get(struct task_struct *target, const struct user_regset *regset,
241b20773bSChristophe Leroy 	   unsigned int pos, unsigned int count, void *kbuf, void __user *ubuf);
251b20773bSChristophe Leroy int vr_set(struct task_struct *target, const struct user_regset *regset,
261b20773bSChristophe Leroy 	   unsigned int pos, unsigned int count,
271b20773bSChristophe Leroy 	   const void *kbuf, const void __user *ubuf);
281b20773bSChristophe Leroy 
29*60ef9dbdSChristophe Leroy /* ptrace-spe */
30*60ef9dbdSChristophe Leroy 
31*60ef9dbdSChristophe Leroy int evr_active(struct task_struct *target, const struct user_regset *regset);
32*60ef9dbdSChristophe Leroy int evr_get(struct task_struct *target, const struct user_regset *regset,
33*60ef9dbdSChristophe Leroy 	    unsigned int pos, unsigned int count, void *kbuf, void __user *ubuf);
34*60ef9dbdSChristophe Leroy int evr_set(struct task_struct *target, const struct user_regset *regset,
35*60ef9dbdSChristophe Leroy 	    unsigned int pos, unsigned int count,
36*60ef9dbdSChristophe Leroy 	    const void *kbuf, const void __user *ubuf);
37*60ef9dbdSChristophe Leroy 
387b99ed4eSChristophe Leroy /* ptrace */
397b99ed4eSChristophe Leroy 
407b99ed4eSChristophe Leroy #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
417b99ed4eSChristophe Leroy void flush_tmregs_to_thread(struct task_struct *tsk);
427b99ed4eSChristophe Leroy #else
437b99ed4eSChristophe Leroy static inline void flush_tmregs_to_thread(struct task_struct *tsk) { }
447b99ed4eSChristophe Leroy #endif
45