Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
kgdb.h
Go to the documentation of this file.
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_ */