25 #include <linux/ptrace.h>
28 #include <linux/sched.h>
32 #include <asm/cacheflush.h>
33 #include <asm/processor.h>
34 #include <asm/sigcontext.h>
36 static struct hard_trap_info {
39 } hard_trap_info[] = {
148 }
else if (regno == 71) {
183 }
else if (regno == 71) {
201 ".globl breakinst\n\t"
202 ".set\tnoreorder\n\t"
204 "breakinst:\tbreak\n\t"
209 static void kgdb_call_nmi_hook(
void *
ignored)
221 static int compute_signal(
int tt)
223 struct hard_trap_info *ht;
225 for (ht = hard_trap_info; ht->tt && ht->signo; ht++)
242 #if (KGDB_GDB_REG_SIZE == 32)
245 u64 *ptr = (
u64 *)gdb_regs;
248 for (reg = 0; reg < 16; reg++)
252 for (reg = 16; reg < 24; reg++)
255 for (reg = 24; reg < 28; reg++)
259 for (reg = 28; reg < 32; reg++)
286 #ifdef CONFIG_KPROBES
306 if ((trap == 9) && (regs->
cp0_epc == (
unsigned long)breakinst))
316 #ifdef CONFIG_KGDB_LOW_LEVEL_TRAP
332 return kgdb_mips_notify(
NULL, cmd, &args);
337 .notifier_call = kgdb_mips_notify,
344 char *remcom_in_buffer,
char *remcom_out_buffer,
350 switch (remcom_in_buffer[0]) {
353 ptr = &remcom_in_buffer[1];