home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / sh / include / asm / kgdb.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.9 KB  |  70 lines

  1. /*
  2.  * May be copied or modified under the terms of the GNU General Public
  3.  * License.  See linux/COPYING for more information.
  4.  *
  5.  * Based on original code by Glenn Engel, Jim Kingdon,
  6.  * David Grothe <dave@gcom.com>, Tigran Aivazian, <tigran@sco.com> and
  7.  * Amit S. Kale <akale@veritas.com>
  8.  * 
  9.  * Super-H port based on sh-stub.c (Ben Lee and Steve Chamberlain) by
  10.  * Henry Bell <henry.bell@st.com>
  11.  * 
  12.  * Header file for low-level support for remote debug using GDB. 
  13.  *
  14.  */
  15.  
  16. #ifndef __KGDB_H
  17. #define __KGDB_H
  18.  
  19. #include <asm/ptrace.h>
  20.  
  21. /* Same as pt_regs but has vbr in place of syscall_nr */
  22. struct kgdb_regs {
  23.         unsigned long regs[16];
  24.         unsigned long pc;
  25.         unsigned long pr;
  26.         unsigned long sr;
  27.         unsigned long gbr;
  28.         unsigned long mach;
  29.         unsigned long macl;
  30.         unsigned long vbr;
  31. };
  32.  
  33. /* State info */
  34. extern char kgdb_in_gdb_mode;
  35. extern int kgdb_nofault;    /* Ignore bus errors (in gdb mem access) */
  36. extern char in_nmi;        /* Debounce flag to prevent NMI reentry*/
  37.  
  38. /* SCI */
  39. extern int kgdb_portnum;
  40. extern int kgdb_baud;
  41. extern char kgdb_parity;
  42. extern char kgdb_bits;
  43.  
  44. /* Init and interface stuff */
  45. extern int kgdb_init(void);
  46. extern int (*kgdb_getchar)(void);
  47. extern void (*kgdb_putchar)(int);
  48.  
  49. /* Trap functions */
  50. typedef void (kgdb_debug_hook_t)(struct pt_regs *regs);
  51. typedef void (kgdb_bus_error_hook_t)(void);
  52. extern kgdb_debug_hook_t  *kgdb_debug_hook;
  53. extern kgdb_bus_error_hook_t *kgdb_bus_err_hook;
  54.  
  55. /* Console */
  56. struct console;
  57. void kgdb_console_write(struct console *co, const char *s, unsigned count);
  58. extern int kgdb_console_setup(struct console *, char *);
  59.  
  60. /* Prototypes for jmp fns */
  61. #define _JBLEN 9
  62. typedef        int jmp_buf[_JBLEN];
  63. extern void    longjmp(jmp_buf __jmpb, int __retval);
  64. extern int     setjmp(jmp_buf __jmpb);
  65.  
  66. /* Forced breakpoint */
  67. #define breakpoint()    __asm__ __volatile__("trapa   #0x3c")
  68.  
  69. #endif
  70.