|  | #ifndef __KGDB_H__ | 
|  | #define __KGDB_H__ | 
|  |  | 
|  | #include <asm/ptrace.h> | 
|  |  | 
|  | #define KGDBERR_BADPARAMS	1 | 
|  | #define KGDBERR_NOTHEXDIG	2 | 
|  | #define KGDBERR_MEMFAULT	3 | 
|  | #define KGDBERR_NOSPACE		4 | 
|  | #define KGDBERR_ALIGNFAULT	5 | 
|  |  | 
|  | #define KGDBDATA_MAXREGS	8 | 
|  | #define KGDBDATA_MAXPRIV	8 | 
|  |  | 
|  | #define KGDBEXIT_TYPEMASK	0xff | 
|  |  | 
|  | #define KGDBEXIT_KILL		0 | 
|  | #define KGDBEXIT_CONTINUE	1 | 
|  | #define KGDBEXIT_SINGLE		2 | 
|  |  | 
|  | #define KGDBEXIT_WITHADDR	0x100 | 
|  |  | 
|  | typedef | 
|  | struct { | 
|  | int num; | 
|  | unsigned long val; | 
|  | } | 
|  | kgdb_reg; | 
|  |  | 
|  | typedef | 
|  | struct { | 
|  | int sigval; | 
|  | int extype; | 
|  | unsigned long exaddr; | 
|  | int nregs; | 
|  | kgdb_reg regs[KGDBDATA_MAXREGS]; | 
|  | unsigned long private[KGDBDATA_MAXPRIV]; | 
|  | } | 
|  | kgdb_data; | 
|  |  | 
|  | /* these functions are provided by the generic kgdb support */ | 
|  | extern void kgdb_init(void); | 
|  | extern void kgdb_error(int); | 
|  | extern int kgdb_output_string(const char *, unsigned int); | 
|  | extern void breakpoint(void); | 
|  |  | 
|  | /* these functions are provided by the platform specific kgdb support */ | 
|  | extern void kgdb_flush_cache_range(void *, void *); | 
|  | extern void kgdb_flush_cache_all(void); | 
|  | extern int kgdb_setjmp(long *); | 
|  | extern void kgdb_longjmp(long *, int); | 
|  | extern void kgdb_enter(struct pt_regs *, kgdb_data *); | 
|  | extern void kgdb_exit(struct pt_regs *, kgdb_data *); | 
|  | extern int kgdb_getregs(struct pt_regs *, char *, int); | 
|  | extern void kgdb_putreg(struct pt_regs *, int, char *, int); | 
|  | extern void kgdb_putregs(struct pt_regs *, char *, int); | 
|  | extern int kgdb_trap(struct pt_regs *); | 
|  | extern void kgdb_breakpoint(int argc, char *argv[]); | 
|  |  | 
|  | /* these functions are provided by the platform serial driver */ | 
|  | extern void kgdb_serial_init(void); | 
|  | extern int getDebugChar(void); | 
|  | extern void putDebugChar(int); | 
|  | extern void putDebugStr(const char *); | 
|  | extern void kgdb_interruptible(int); | 
|  |  | 
|  | /* this is referenced in the trap handler for the platform */ | 
|  | extern int (*debugger_exception_handler)(struct pt_regs *); | 
|  |  | 
|  | #endif /* __KGDB_H__ */ |