Merge tag 'block-5.11-2021-01-16' of git://git.kernel.dk/linux-block
[linux/fpc-iii.git] / tools / include / asm / bug.h
blob550223f0a6e6d7c8a78d64a65c90c0b6a4e336d5
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _TOOLS_ASM_BUG_H
3 #define _TOOLS_ASM_BUG_H
5 #include <linux/compiler.h>
6 #include <stdio.h>
8 #define __WARN_printf(arg...) do { fprintf(stderr, arg); } while (0)
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); \
17 #define WARN_ON(condition) ({ \
18 int __ret_warn_on = !!(condition); \
19 if (unlikely(__ret_warn_on)) \
20 __WARN_printf("assertion failed at %s:%d\n", \
21 __FILE__, __LINE__); \
22 unlikely(__ret_warn_on); \
25 #define WARN_ON_ONCE(condition) ({ \
26 static int __warned; \
27 int __ret_warn_once = !!(condition); \
29 if (unlikely(__ret_warn_once && !__warned)) { \
30 __warned = true; \
31 WARN_ON(1); \
32 } \
33 unlikely(__ret_warn_once); \
36 #define WARN_ONCE(condition, format...) ({ \
37 static int __warned; \
38 int __ret_warn_once = !!(condition); \
40 if (unlikely(__ret_warn_once)) \
41 if (WARN(!__warned, format)) \
42 __warned = 1; \
43 unlikely(__ret_warn_once); \
46 #endif /* _TOOLS_ASM_BUG_H */