Merge commit 'gcl/merge' into merge
[linux-2.6] / arch / mips / include / asm / kgdb.h
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
13 #elif (_MIPS_ISA == _MIPS_ISA_MIPS3) || (_MIPS_ISA == _MIPS_ISA_MIPS4) || \
14         (_MIPS_ISA == _MIPS_ISA_MIPS64)
15
16 #ifdef CONFIG_32BIT
17 #define KGDB_GDB_REG_SIZE 32
18 #else /* CONFIG_CPU_32BIT */
19 #define KGDB_GDB_REG_SIZE 64
20 #endif
21 #else
22 #error "Need to set KGDB_GDB_REG_SIZE for MIPS ISA"
23 #endif /* _MIPS_ISA */
24
25 #define BUFMAX                  2048
26 #if (KGDB_GDB_REG_SIZE == 32)
27 #define NUMREGBYTES             (90*sizeof(u32))
28 #define NUMCRITREGBYTES         (12*sizeof(u32))
29 #else
30 #define NUMREGBYTES             (90*sizeof(u64))
31 #define NUMCRITREGBYTES         (12*sizeof(u64))
32 #endif
33 #define BREAK_INSTR_SIZE        4
34 #define CACHE_FLUSH_IS_SAFE     0
35
36 extern void arch_kgdb_breakpoint(void);
37 extern int kgdb_early_setup;
38 extern void *saved_vectors[32];
39 extern void handle_exception(struct pt_regs *regs);
40 extern void breakinst(void);
41
42 #endif                          /* __KERNEL__ */
43
44 #endif /* __ASM_KGDB_H_ */