# 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 * const 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__ */