blob: e6c0b0e14ccb989a3f8e0e72a1060222e68941e7 [file] [log] [blame]
Jason Wessel88547002008-07-29 15:58:53 -05001#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
Jason Wessel0896a9b2010-08-05 09:22:21 -050011#define KGDB_GDB_REG_SIZE 32
12#define GDB_SIZEOF_REG sizeof(u32)
Jason Wessel88547002008-07-29 15:58:53 -050013
14#elif (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \
15 (_MIPS_ISA == _MIPS_ISA_MIPS64)
16
17#ifdef CONFIG_32BIT
Jason Wessel0896a9b2010-08-05 09:22:21 -050018#define KGDB_GDB_REG_SIZE 32
19#define GDB_SIZEOF_REG sizeof(u32)
Jason Wessel88547002008-07-29 15:58:53 -050020#else /* CONFIG_CPU_32BIT */
Jason Wessel0896a9b2010-08-05 09:22:21 -050021#define KGDB_GDB_REG_SIZE 64
22#define GDB_SIZEOF_REG sizeof(u64)
Jason Wessel88547002008-07-29 15:58:53 -050023#endif
24#else
25#error "Need to set KGDB_GDB_REG_SIZE for MIPS ISA"
26#endif /* _MIPS_ISA */
27
28#define BUFMAX 2048
Jason Wessel0896a9b2010-08-05 09:22:21 -050029#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))
Jason Wessel88547002008-07-29 15:58:53 -050032#define BREAK_INSTR_SIZE 4
33#define CACHE_FLUSH_IS_SAFE 0
34
35extern void arch_kgdb_breakpoint(void);
36extern int kgdb_early_setup;
37extern void *saved_vectors[32];
38extern void handle_exception(struct pt_regs *regs);
39extern void breakinst(void);
Jason Wessel5dd11d52010-05-20 21:04:26 -050040extern int kgdb_ll_trap(int cmd, const char *str,
41 struct pt_regs *regs, long err, int trap, int sig);
Jason Wessel88547002008-07-29 15:58:53 -050042
43#endif /* __KERNEL__ */
44
45#endif /* __ASM_KGDB_H_ */