mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
951 B
44 lines
951 B
/* |
|
* linux/arch/h8300/kernel/ptrace_h8s.c |
|
* ptrace cpu depend helper functions |
|
* |
|
* Yoshinori Sato <[email protected]> |
|
* |
|
* This file is subject to the terms and conditions of the GNU General |
|
* Public License. See the file COPYING in the main directory of |
|
* this archive for more details. |
|
*/ |
|
|
|
#include <linux/linkage.h> |
|
#include <linux/sched/signal.h> |
|
#include <linux/errno.h> |
|
#include <asm/ptrace.h> |
|
|
|
#define CCR_MASK 0x6f |
|
#define EXR_TRACE 0x80 |
|
|
|
/* disable singlestep */ |
|
void user_disable_single_step(struct task_struct *child) |
|
{ |
|
unsigned char exr; |
|
|
|
exr = h8300_get_reg(child, PT_EXR); |
|
exr &= ~EXR_TRACE; |
|
h8300_put_reg(child, PT_EXR, exr); |
|
} |
|
|
|
/* enable singlestep */ |
|
void user_enable_single_step(struct task_struct *child) |
|
{ |
|
unsigned char exr; |
|
|
|
exr = h8300_get_reg(child, PT_EXR); |
|
exr |= EXR_TRACE; |
|
h8300_put_reg(child, PT_EXR, exr); |
|
} |
|
|
|
asmlinkage void trace_trap(unsigned long bp) |
|
{ |
|
(void)bp; |
|
force_sig(SIGTRAP); |
|
}
|
|
|