| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  *	Trap handling definitions. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *	Copyright (C) 2002, 2003  Maciej W. Rozycki | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *	This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  *	modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  |  *	as published by the Free Software Foundation; either version | 
					
						
							|  |  |  |  *	2 of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef _ASM_TRAPS_H
 | 
					
						
							|  |  |  | #define _ASM_TRAPS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * Possible status responses for a board_be_handler backend. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2013-01-22 12:59:30 +01:00
										 |  |  | #define MIPS_BE_DISCARD 0		/* return with no action */
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #define MIPS_BE_FIXUP	1		/* return to the fixup code */
 | 
					
						
							|  |  |  | #define MIPS_BE_FATAL	2		/* treat as an unrecoverable error */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void (*board_be_init)(void); | 
					
						
							|  |  |  | extern int (*board_be_handler)(struct pt_regs *regs, int is_fixup); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-07-14 15:57:16 +00:00
										 |  |  | extern void (*board_nmi_handler_setup)(void); | 
					
						
							|  |  |  | extern void (*board_ejtag_handler_setup)(void); | 
					
						
							| 
									
										
										
										
											2008-04-26 01:55:30 +09:00
										 |  |  | extern void (*board_bind_eic_interrupt)(int irq, int regset); | 
					
						
							| 
									
										
										
										
											2011-11-16 01:25:45 +00:00
										 |  |  | extern void (*board_ebase_setup)(void); | 
					
						
							| 
									
										
										
										
											2012-05-15 00:04:46 -07:00
										 |  |  | extern void (*board_cache_error_setup)(void); | 
					
						
							| 
									
										
										
										
											2005-07-14 15:57:16 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-16 01:25:44 +00:00
										 |  |  | extern int register_nmi_notifier(struct notifier_block *nb); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define nmi_notifier(fn, pri)						\
 | 
					
						
							|  |  |  | ({									\ | 
					
						
							|  |  |  | 	static struct notifier_block fn##_nb = {			\ | 
					
						
							|  |  |  | 		.notifier_call = fn,					\ | 
					
						
							|  |  |  | 		.priority = pri						\ | 
					
						
							|  |  |  | 	};								\ | 
					
						
							|  |  |  | 									\ | 
					
						
							|  |  |  | 	register_nmi_notifier(&fn##_nb);				\ | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #endif /* _ASM_TRAPS_H */
 |