uboot/include/kgdb.h
<<
>>
Prefs
   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
  23typedef
  24        struct {
  25                int num;
  26                unsigned long val;
  27        }
  28kgdb_reg;
  29
  30typedef
  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        }
  39kgdb_data;
  40
  41/* these functions are provided by the generic kgdb support */
  42extern void kgdb_init(void);
  43extern void kgdb_error(int);
  44extern int kgdb_output_string(const char *, unsigned int);
  45extern void breakpoint(void);
  46
  47/* these functions are provided by the platform specific kgdb support */
  48extern void kgdb_flush_cache_range(void *, void *);
  49extern void kgdb_flush_cache_all(void);
  50extern int kgdb_setjmp(long *);
  51extern void kgdb_longjmp(long *, int);
  52extern void kgdb_enter(struct pt_regs *, kgdb_data *);
  53extern void kgdb_exit(struct pt_regs *, kgdb_data *);
  54extern int kgdb_getregs(struct pt_regs *, char *, int);
  55extern void kgdb_putreg(struct pt_regs *, int, char *, int);
  56extern void kgdb_putregs(struct pt_regs *, char *, int);
  57extern int kgdb_trap(struct pt_regs *);
  58void kgdb_breakpoint(int argc, char *const argv[]);
  59
  60/* these functions are provided by the platform serial driver */
  61extern void kgdb_serial_init(void);
  62extern int getDebugChar(void);
  63extern void putDebugChar(int);
  64extern void putDebugStr(const char *);
  65extern void kgdb_interruptible(int);
  66
  67/* this is referenced in the trap handler for the platform */
  68extern int (*debugger_exception_handler)(struct pt_regs *);
  69
  70#endif /* __KGDB_H__ */
  71