Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* |
2 | * May be copied or modified under the terms of the GNU General Public | |
3 | * License. See linux/COPYING for more information. | |
4 | * | |
5 | * Based on original code by Glenn Engel, Jim Kingdon, | |
6 | * David Grothe <dave@gcom.com>, Tigran Aivazian, <tigran@sco.com> and | |
7 | * Amit S. Kale <akale@veritas.com> | |
8 | * | |
9 | * Super-H port based on sh-stub.c (Ben Lee and Steve Chamberlain) by | |
10 | * Henry Bell <henry.bell@st.com> | |
11 | * | |
12 | * Header file for low-level support for remote debug using GDB. | |
13 | * | |
14 | */ | |
15 | ||
16 | #ifndef __KGDB_H | |
17 | #define __KGDB_H | |
18 | ||
19 | #include <asm/ptrace.h> | |
20 | ||
1da177e4 LT |
21 | /* Same as pt_regs but has vbr in place of syscall_nr */ |
22 | struct kgdb_regs { | |
23 | unsigned long regs[16]; | |
24 | unsigned long pc; | |
25 | unsigned long pr; | |
26 | unsigned long sr; | |
27 | unsigned long gbr; | |
28 | unsigned long mach; | |
29 | unsigned long macl; | |
30 | unsigned long vbr; | |
31 | }; | |
32 | ||
33 | /* State info */ | |
34 | extern char kgdb_in_gdb_mode; | |
1da177e4 | 35 | extern int kgdb_nofault; /* Ignore bus errors (in gdb mem access) */ |
1da177e4 LT |
36 | extern char in_nmi; /* Debounce flag to prevent NMI reentry*/ |
37 | ||
38 | /* SCI */ | |
39 | extern int kgdb_portnum; | |
40 | extern int kgdb_baud; | |
41 | extern char kgdb_parity; | |
42 | extern char kgdb_bits; | |
1da177e4 LT |
43 | |
44 | /* Init and interface stuff */ | |
45 | extern int kgdb_init(void); | |
1da177e4 LT |
46 | extern int (*kgdb_getchar)(void); |
47 | extern void (*kgdb_putchar)(int); | |
48 | ||
1da177e4 | 49 | /* Trap functions */ |
fa5da2f7 | 50 | typedef void (kgdb_debug_hook_t)(struct pt_regs *regs); |
1da177e4 LT |
51 | typedef void (kgdb_bus_error_hook_t)(void); |
52 | extern kgdb_debug_hook_t *kgdb_debug_hook; | |
53 | extern kgdb_bus_error_hook_t *kgdb_bus_err_hook; | |
54 | ||
1da177e4 | 55 | /* Console */ |
a90f3547 | 56 | struct console; |
1da177e4 | 57 | void kgdb_console_write(struct console *co, const char *s, unsigned count); |
fa5da2f7 | 58 | extern int kgdb_console_setup(struct console *, char *); |
1da177e4 LT |
59 | |
60 | /* Prototypes for jmp fns */ | |
61 | #define _JBLEN 9 | |
62 | typedef int jmp_buf[_JBLEN]; | |
63 | extern void longjmp(jmp_buf __jmpb, int __retval); | |
64 | extern int setjmp(jmp_buf __jmpb); | |
65 | ||
1da177e4 | 66 | /* Forced breakpoint */ |
a90f3547 | 67 | #define breakpoint() __asm__ __volatile__("trapa #0x3c") |
1da177e4 | 68 | |
1da177e4 | 69 | #endif |