| /* SPDX-License-Identifier: GPL-2.0 */ | 
 | #ifndef _TOOLS_ASM_BUG_H | 
 | #define _TOOLS_ASM_BUG_H | 
 |  | 
 | #include <linux/compiler.h> | 
 |  | 
 | #define __WARN_printf(arg...)	do { fprintf(stderr, arg); } while (0) | 
 |  | 
 | #define WARN(condition, format...) ({		\ | 
 | 	int __ret_warn_on = !!(condition);	\ | 
 | 	if (unlikely(__ret_warn_on))		\ | 
 | 		__WARN_printf(format);		\ | 
 | 	unlikely(__ret_warn_on);		\ | 
 | }) | 
 |  | 
 | #define WARN_ON(condition) ({					\ | 
 | 	int __ret_warn_on = !!(condition);			\ | 
 | 	if (unlikely(__ret_warn_on))				\ | 
 | 		__WARN_printf("assertion failed at %s:%d\n",	\ | 
 | 				__FILE__, __LINE__);		\ | 
 | 	unlikely(__ret_warn_on);				\ | 
 | }) | 
 |  | 
 | #define WARN_ON_ONCE(condition) ({			\ | 
 | 	static int __warned;				\ | 
 | 	int __ret_warn_once = !!(condition);		\ | 
 | 							\ | 
 | 	if (unlikely(__ret_warn_once && !__warned)) {	\ | 
 | 		__warned = true;			\ | 
 | 		WARN_ON(1);				\ | 
 | 	}						\ | 
 | 	unlikely(__ret_warn_once);			\ | 
 | }) | 
 |  | 
 | #define WARN_ONCE(condition, format...)	({	\ | 
 | 	static int __warned;			\ | 
 | 	int __ret_warn_once = !!(condition);	\ | 
 | 						\ | 
 | 	if (unlikely(__ret_warn_once))		\ | 
 | 		if (WARN(!__warned, format)) 	\ | 
 | 			__warned = 1;		\ | 
 | 	unlikely(__ret_warn_once);		\ | 
 | }) | 
 |  | 
 | #endif /* _TOOLS_ASM_BUG_H */ |