Blame view

arch/powerpc/include/asm/debug.h 1.97 KB
ae3a197e3   David Howells   Disintegrate asm/...
1
2
3
4
5
  /*
   * Copyright (C) 1999 Cort Dougan <cort@cs.nmt.edu>
   */
  #ifndef _ASM_POWERPC_DEBUG_H
  #define _ASM_POWERPC_DEBUG_H
9422de3e9   Michael Neuling   powerpc: Hardware...
6
  #include <asm/hw_breakpoint.h>
ae3a197e3   David Howells   Disintegrate asm/...
7
8
9
10
11
12
13
14
15
16
17
  struct pt_regs;
  
  extern struct dentry *powerpc_debugfs_root;
  
  #if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
  
  extern int (*__debugger)(struct pt_regs *regs);
  extern int (*__debugger_ipi)(struct pt_regs *regs);
  extern int (*__debugger_bpt)(struct pt_regs *regs);
  extern int (*__debugger_sstep)(struct pt_regs *regs);
  extern int (*__debugger_iabr_match)(struct pt_regs *regs);
9422de3e9   Michael Neuling   powerpc: Hardware...
18
  extern int (*__debugger_break_match)(struct pt_regs *regs);
ae3a197e3   David Howells   Disintegrate asm/...
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  extern int (*__debugger_fault_handler)(struct pt_regs *regs);
  
  #define DEBUGGER_BOILERPLATE(__NAME) \
  static inline int __NAME(struct pt_regs *regs) \
  { \
  	if (unlikely(__ ## __NAME)) \
  		return __ ## __NAME(regs); \
  	return 0; \
  }
  
  DEBUGGER_BOILERPLATE(debugger)
  DEBUGGER_BOILERPLATE(debugger_ipi)
  DEBUGGER_BOILERPLATE(debugger_bpt)
  DEBUGGER_BOILERPLATE(debugger_sstep)
  DEBUGGER_BOILERPLATE(debugger_iabr_match)
9422de3e9   Michael Neuling   powerpc: Hardware...
34
  DEBUGGER_BOILERPLATE(debugger_break_match)
ae3a197e3   David Howells   Disintegrate asm/...
35
36
37
38
39
40
41
42
  DEBUGGER_BOILERPLATE(debugger_fault_handler)
  
  #else
  static inline int debugger(struct pt_regs *regs) { return 0; }
  static inline int debugger_ipi(struct pt_regs *regs) { return 0; }
  static inline int debugger_bpt(struct pt_regs *regs) { return 0; }
  static inline int debugger_sstep(struct pt_regs *regs) { return 0; }
  static inline int debugger_iabr_match(struct pt_regs *regs) { return 0; }
9422de3e9   Michael Neuling   powerpc: Hardware...
43
  static inline int debugger_break_match(struct pt_regs *regs) { return 0; }
ae3a197e3   David Howells   Disintegrate asm/...
44
45
  static inline int debugger_fault_handler(struct pt_regs *regs) { return 0; }
  #endif
04c32a516   Paul Gortmaker   powerpc: Drop ret...
46
  void set_breakpoint(struct arch_hw_breakpoint *brk);
21f585073   Paul Gortmaker   powerpc: Fix smp_...
47
  void __set_breakpoint(struct arch_hw_breakpoint *brk);
ae3a197e3   David Howells   Disintegrate asm/...
48
49
50
51
  #ifdef CONFIG_PPC_ADV_DEBUG_REGS
  extern void do_send_trap(struct pt_regs *regs, unsigned long address,
  			 unsigned long error_code, int signal_code, int brkpt);
  #else
9422de3e9   Michael Neuling   powerpc: Hardware...
52
53
54
  
  extern void do_break(struct pt_regs *regs, unsigned long address,
  		     unsigned long error_code);
ae3a197e3   David Howells   Disintegrate asm/...
55
56
57
  #endif
  
  #endif /* _ASM_POWERPC_DEBUG_H */