1 /* 2 * linux/arch/h8300/kernel/ptrace_h8s.c 3 * ptrace cpu depend helper functions 4 * 5 * Yoshinori Sato <ysato@users.sourceforge.jp> 6 * 7 * This file is subject to the terms and conditions of the GNU General 8 * Public License. See the file COPYING in the main directory of 9 * this archive for more details. 10 */ 11 12 #include <linux/linkage.h> 13 #include <linux/sched/signal.h> 14 #include <linux/errno.h> 15 #include <asm/ptrace.h> 16 17 #define CCR_MASK 0x6f 18 #define EXR_TRACE 0x80 19 20 /* disable singlestep */ user_disable_single_step(struct task_struct * child)21void user_disable_single_step(struct task_struct *child) 22 { 23 unsigned char exr; 24 25 exr = h8300_get_reg(child, PT_EXR); 26 exr &= ~EXR_TRACE; 27 h8300_put_reg(child, PT_EXR, exr); 28 } 29 30 /* enable singlestep */ user_enable_single_step(struct task_struct * child)31void user_enable_single_step(struct task_struct *child) 32 { 33 unsigned char exr; 34 35 exr = h8300_get_reg(child, PT_EXR); 36 exr |= EXR_TRACE; 37 h8300_put_reg(child, PT_EXR, exr); 38 } 39 trace_trap(unsigned long bp)40asmlinkage void trace_trap(unsigned long bp) 41 { 42 (void)bp; 43 force_sig(SIGTRAP, current); 44 } 45