kgdb.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. extern void kgdb_init(void);
  34. extern void kgdb_error(int);
  35. extern int kgdb_output_string(const char *, unsigned int);
  36. extern void breakpoint(void);
  37. /* these functions are provided by the platform specific kgdb support */
  38. extern void kgdb_flush_cache_range(void *, void *);
  39. extern void kgdb_flush_cache_all(void);
  40. extern int kgdb_setjmp(long *);
  41. extern void kgdb_longjmp(long *, int);
  42. extern void kgdb_enter(struct pt_regs *, kgdb_data *);
  43. extern void kgdb_exit(struct pt_regs *, kgdb_data *);
  44. extern int kgdb_getregs(struct pt_regs *, char *, int);
  45. extern void kgdb_putreg(struct pt_regs *, int, char *, int);
  46. extern void kgdb_putregs(struct pt_regs *, char *, int);
  47. extern int kgdb_trap(struct pt_regs *);
  48. extern void kgdb_breakpoint(int argc, char * const argv[]);
  49. /* these functions are provided by the platform serial driver */
  50. extern void kgdb_serial_init(void);
  51. extern int getDebugChar(void);
  52. extern void putDebugChar(int);
  53. extern void putDebugStr(const char *);
  54. extern void kgdb_interruptible(int);
  55. /* this is referenced in the trap handler for the platform */
  56. extern int (*debugger_exception_handler)(struct pt_regs *);
  57. #endif /* __KGDB_H__ */