1 #ifndef __ASM_KGDB_H_ 2 #define __ASM_KGDB_H_ 3 4 #ifdef __KERNEL__ 5 6 #include <asm/sgidefs.h> 7 8 #if (_MIPS_ISA == _MIPS_ISA_MIPS1) || (_MIPS_ISA == _MIPS_ISA_MIPS2) || \ 9 (_MIPS_ISA == _MIPS_ISA_MIPS32) 10 11 #define KGDB_GDB_REG_SIZE 32 12 #define GDB_SIZEOF_REG sizeof(u32) 13 14 #elif (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \ 15 (_MIPS_ISA == _MIPS_ISA_MIPS64) 16 17 #ifdef CONFIG_32BIT 18 #define KGDB_GDB_REG_SIZE 32 19 #define GDB_SIZEOF_REG sizeof(u32) 20 #else /* CONFIG_CPU_32BIT */ 21 #define KGDB_GDB_REG_SIZE 64 22 #define GDB_SIZEOF_REG sizeof(u64) 23 #endif 24 #else 25 #error "Need to set KGDB_GDB_REG_SIZE for MIPS ISA" 26 #endif /* _MIPS_ISA */ 27 28 #define BUFMAX 2048 29 #define DBG_MAX_REG_NUM 72 30 #define NUMREGBYTES (DBG_MAX_REG_NUM * sizeof(GDB_SIZEOF_REG)) 31 #define NUMCRITREGBYTES (12 * sizeof(GDB_SIZEOF_REG)) 32 #define BREAK_INSTR_SIZE 4 33 #define CACHE_FLUSH_IS_SAFE 0 34 35 extern void arch_kgdb_breakpoint(void); 36 extern int kgdb_early_setup; 37 extern void *saved_vectors[32]; 38 extern void handle_exception(struct pt_regs *regs); 39 extern void breakinst(void); 40 extern int kgdb_ll_trap(int cmd, const char *str, 41 struct pt_regs *regs, long err, int trap, int sig); 42 43 #endif /* __KERNEL__ */ 44 45 #endif /* __ASM_KGDB_H_ */ 46