 ae3a197e3d
			
		
	
	
	ae3a197e3d
	
	
	
		
			
			Disintegrate asm/system.h for PowerPC. Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> cc: linuxppc-dev@lists.ozlabs.org
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			1.9 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.9 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 1999 Cort Dougan <cort@cs.nmt.edu>
 | |
|  */
 | |
| #ifndef _ASM_POWERPC_DEBUG_H
 | |
| #define _ASM_POWERPC_DEBUG_H
 | |
| 
 | |
| 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);
 | |
| extern int (*__debugger_dabr_match)(struct pt_regs *regs);
 | |
| 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)
 | |
| DEBUGGER_BOILERPLATE(debugger_dabr_match)
 | |
| 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; }
 | |
| static inline int debugger_dabr_match(struct pt_regs *regs) { return 0; }
 | |
| static inline int debugger_fault_handler(struct pt_regs *regs) { return 0; }
 | |
| #endif
 | |
| 
 | |
| extern int set_dabr(unsigned long dabr);
 | |
| #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
 | |
| extern void do_dabr(struct pt_regs *regs, unsigned long address,
 | |
| 		    unsigned long error_code);
 | |
| #endif
 | |
| 
 | |
| #endif /* _ASM_POWERPC_DEBUG_H */
 |