]> asedeno.scripts.mit.edu Git - linux.git/blob - tools/include/asm/bug.h
beda1a884b50f0465ace7e3f01ca6014e5d3e755
[linux.git] / tools / include / asm / bug.h
1 #ifndef _TOOLS_ASM_BUG_H
2 #define _TOOLS_ASM_BUG_H
3
4 #include <linux/compiler.h>
5
6 #define __WARN_printf(arg...)   do { fprintf(stderr, arg); } while (0)
7
8 #define WARN(condition, format...) ({           \
9         int __ret_warn_on = !!(condition);      \
10         if (unlikely(__ret_warn_on))            \
11                 __WARN_printf(format);          \
12         unlikely(__ret_warn_on);                \
13 })
14
15 #define WARN_ON_ONCE(condition) ({                      \
16         static int __warned;                            \
17         int __ret_warn_once = !!(condition);            \
18                                                         \
19         if (unlikely(__ret_warn_once && !__warned)) {   \
20                 __warned = true;                        \
21                 WARN_ON(1);                             \
22         }                                               \
23         unlikely(__ret_warn_once);                      \
24 })
25
26 #define WARN_ONCE(condition, format...) ({      \
27         static int __warned;                    \
28         int __ret_warn_once = !!(condition);    \
29                                                 \
30         if (unlikely(__ret_warn_once))          \
31                 if (WARN(!__warned, format))    \
32                         __warned = 1;           \
33         unlikely(__ret_warn_once);              \
34 })
35
36 #endif /* _TOOLS_ASM_BUG_H */