kgdb.h 2.0 KB

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