Home | History | Annotate | Download | only in include
      1 #ifndef __KGDB_H__
      2 #define __KGDB_H__
      3 
      4 #include <asm/ptrace.h>
      5 
      6 #define KGDBERR_BADPARAMS	1
      7 #define KGDBERR_NOTHEXDIG	2
      8 #define KGDBERR_MEMFAULT	3
      9 #define KGDBERR_NOSPACE		4
     10 #define KGDBERR_ALIGNFAULT	5
     11 
     12 #define KGDBDATA_MAXREGS	8
     13 #define KGDBDATA_MAXPRIV	8
     14 
     15 #define KGDBEXIT_TYPEMASK	0xff
     16 
     17 #define KGDBEXIT_KILL		0
     18 #define KGDBEXIT_CONTINUE	1
     19 #define KGDBEXIT_SINGLE		2
     20 
     21 #define KGDBEXIT_WITHADDR	0x100
     22 
     23 typedef
     24 	struct {
     25 		int num;
     26 		unsigned long val;
     27 	}
     28 kgdb_reg;
     29 
     30 typedef
     31 	struct {
     32 		int sigval;
     33 		int extype;
     34 		unsigned long exaddr;
     35 		int nregs;
     36 		kgdb_reg regs[KGDBDATA_MAXREGS];
     37 		unsigned long private[KGDBDATA_MAXPRIV];
     38 	}
     39 kgdb_data;
     40 
     41 /* these functions are provided by the generic kgdb support */
     42 extern void kgdb_init(void);
     43 extern void kgdb_error(int);
     44 extern int kgdb_output_string(const char *, unsigned int);
     45 extern void breakpoint(void);
     46 
     47 /* these functions are provided by the platform specific kgdb support */
     48 extern void kgdb_flush_cache_range(void *, void *);
     49 extern void kgdb_flush_cache_all(void);
     50 extern int kgdb_setjmp(long *);
     51 extern void kgdb_longjmp(long *, int);
     52 extern void kgdb_enter(struct pt_regs *, kgdb_data *);
     53 extern void kgdb_exit(struct pt_regs *, kgdb_data *);
     54 extern int kgdb_getregs(struct pt_regs *, char *, int);
     55 extern void kgdb_putreg(struct pt_regs *, int, char *, int);
     56 extern void kgdb_putregs(struct pt_regs *, char *, int);
     57 extern int kgdb_trap(struct pt_regs *);
     58 extern void kgdb_breakpoint(int argc, char * const argv[]);
     59 
     60 /* these functions are provided by the platform serial driver */
     61 extern void kgdb_serial_init(void);
     62 extern int getDebugChar(void);
     63 extern void putDebugChar(int);
     64 extern void putDebugStr(const char *);
     65 extern void kgdb_interruptible(int);
     66 
     67 /* this is referenced in the trap handler for the platform */
     68 extern int (*debugger_exception_handler)(struct pt_regs *);
     69 
     70 #endif /* __KGDB_H__ */
     71