| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #ifndef __ASM_BUG_H
 | 
					
						
							|  |  |  | #define __ASM_BUG_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-06-19 13:51:28 +01:00
										 |  |  | #include <linux/compiler.h>
 | 
					
						
							| 
									
										
										
										
											2006-10-16 01:38:50 +01:00
										 |  |  | #include <asm/sgidefs.h>
 | 
					
						
							| 
									
										
										
										
											2005-05-19 12:08:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_BUG
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #include <asm/break.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-20 17:26:36 -08:00
										 |  |  | static inline void __noreturn BUG(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	__asm__ __volatile__("break %0" : : "i" (BRK_BUG)); | 
					
						
							| 
									
										
										
										
											2009-12-04 17:44:52 -08:00
										 |  |  | 	unreachable(); | 
					
						
							| 
									
										
										
										
											2008-11-20 17:26:36 -08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2005-10-29 19:32:38 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define HAVE_ARCH_BUG
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-10-16 01:38:50 +01:00
										 |  |  | #if (_MIPS_ISA > _MIPS_ISA_MIPS1)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-11-20 17:26:36 -08:00
										 |  |  | static inline void  __BUG_ON(unsigned long condition) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (__builtin_constant_p(condition)) { | 
					
						
							|  |  |  | 		if (condition) | 
					
						
							|  |  |  | 			BUG(); | 
					
						
							|  |  |  | 		else | 
					
						
							|  |  |  | 			return; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	__asm__ __volatile__("tne $0, %0, %1" | 
					
						
							|  |  |  | 			     : : "r" (condition), "i" (BRK_BUG)); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define BUG_ON(C) __BUG_ON((unsigned long)(C))
 | 
					
						
							| 
									
										
										
										
											2006-10-16 01:38:50 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define HAVE_ARCH_BUG_ON
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* _MIPS_ISA > _MIPS_ISA_MIPS1 */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2005-05-19 12:08:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-05-19 17:05:09 +00:00
										 |  |  | #include <asm-generic/bug.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-05-19 12:08:04 +00:00
										 |  |  | #endif /* __ASM_BUG_H */
 |