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