1/* $Id: kgdb.h,v 1.2 1998/04/11 17:29:07 geert Exp $ 2 * kgdb.h: Defines and declarations for serial line source level 3 * remote debugging of the Linux kernel using gdb. 4 * 5 * PPC Mods (C) 1998 Michael Tesch (tesch@cs.wisc.edu) 6 * 7 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 8 */ 9#ifndef _PPC_KGDB_H 10#define _PPC_KGDB_H 11 12#ifndef __ASSEMBLY__ 13/* To initialize the serial, first thing called */ 14extern void zs_kgdb_hook(int tty_num); 15/* To init the kgdb engine. (called by serial hook)*/ 16extern void set_debug_traps(void); 17 18/* To enter the debugger explicitly. */ 19extern void breakpoint(void); 20 21/* For taking exceptions 22 * these are defined in traps.c 23 */ 24extern void (*debugger)(struct pt_regs *regs); 25extern int (*debugger_bpt)(struct pt_regs *regs); 26extern int (*debugger_sstep)(struct pt_regs *regs); 27extern int (*debugger_iabr_match)(struct pt_regs *regs); 28extern int (*debugger_dabr_match)(struct pt_regs *regs); 29extern void (*debugger_fault_handler)(struct pt_regs *regs); 30 31/* What we bring to the party */ 32int kgdb_bpt(struct pt_regs *regs); 33int kgdb_sstep(struct pt_regs *regs); 34void kgdb(struct pt_regs *regs); 35int kgdb_iabr_match(struct pt_regs *regs); 36int kgdb_dabr_match(struct pt_regs *regs); 37static void kgdb_fault_handler(struct pt_regs *regs); 38static void handle_exception (struct pt_regs *regs); 39 40/* 41 * external low-level support routines (ie macserial.c) 42 */ 43extern void kgdb_interruptible(int); /* control interrupts from serial */ 44extern void putDebugChar(char); /* write a single character */ 45extern char getDebugChar(void); /* read and return a single char */ 46 47#endif /* !(__ASSEMBLY__) */ 48#endif /* !(_PPC_KGDB_H) */ 49

