Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 989a7241df87526bfef0396567e71ebe53a84ae4 83 lines 2.2 kB view raw
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 */ 22struct 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 */ 34extern char kgdb_in_gdb_mode; 35extern int kgdb_nofault; /* Ignore bus errors (in gdb mem access) */ 36extern char in_nmi; /* Debounce flag to prevent NMI reentry*/ 37 38/* SCI */ 39extern int kgdb_portnum; 40extern int kgdb_baud; 41extern char kgdb_parity; 42extern char kgdb_bits; 43 44/* Init and interface stuff */ 45extern int kgdb_init(void); 46extern int (*kgdb_getchar)(void); 47extern void (*kgdb_putchar)(int); 48 49/* Trap functions */ 50typedef void (kgdb_debug_hook_t)(struct pt_regs *regs); 51typedef void (kgdb_bus_error_hook_t)(void); 52extern kgdb_debug_hook_t *kgdb_debug_hook; 53extern kgdb_bus_error_hook_t *kgdb_bus_err_hook; 54 55/* Console */ 56struct console; 57void kgdb_console_write(struct console *co, const char *s, unsigned count); 58extern int kgdb_console_setup(struct console *, char *); 59 60/* Prototypes for jmp fns */ 61#define _JBLEN 9 62typedef int jmp_buf[_JBLEN]; 63extern void longjmp(jmp_buf __jmpb, int __retval); 64extern int setjmp(jmp_buf __jmpb); 65 66/* Forced breakpoint */ 67#define breakpoint() __asm__ __volatile__("trapa #0x3c") 68 69/* Taken from sh-stub.c of GDB 4.18 */ 70static const char hexchars[] = "0123456789abcdef"; 71 72/* Get high hex bits */ 73static inline char highhex(const int x) 74{ 75 return hexchars[(x >> 4) & 0xf]; 76} 77 78/* Get low hex bits */ 79static inline char lowhex(const int x) 80{ 81 return hexchars[x & 0xf]; 82} 83#endif