Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
[sfrench/cifs-2.6.git] / arch / h8300 / kernel / ptrace_s.c
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 */
21 void 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 */
31 void 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
40 asmlinkage void trace_trap(unsigned long bp)
41 {
42         (void)bp;
43         force_sig(SIGTRAP);
44 }