1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 #ifndef _TOOLS_ASM_BUG_H 3 #define _TOOLS_ASM_BUG_H 4 5 #include <linux/compiler.h> 6 #include <stdio.h> 7 8 #define __WARN_printf(arg...) do { fprintf(s 9 10 #define WARN(condition, format...) ({ 11 int __ret_warn_on = !!(condition); 12 if (unlikely(__ret_warn_on)) 13 __WARN_printf(format); 14 unlikely(__ret_warn_on); 15 }) 16 17 #define WARN_ON(condition) ({ 18 int __ret_warn_on = !!(condition); 19 if (unlikely(__ret_warn_on)) 20 __WARN_printf("assertion faile 21 __FILE__, __LI 22 unlikely(__ret_warn_on); 23 }) 24 25 #define WARN_ON_ONCE(condition) ({ 26 static int __warned; 27 int __ret_warn_once = !!(condition); 28 29 if (unlikely(__ret_warn_once && !__war 30 __warned = true; 31 WARN_ON(1); 32 } 33 unlikely(__ret_warn_once); 34 }) 35 36 #define WARN_ONCE(condition, format...) ({ 37 static int __warned; 38 int __ret_warn_once = !!(condition); 39 40 if (unlikely(__ret_warn_once)) 41 if (WARN(!__warned, format)) 42 __warned = 1; 43 unlikely(__ret_warn_once); 44 }) 45 46 #endif /* _TOOLS_ASM_BUG_H */ 47
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.