Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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(condition) ({ \
16 int __ret_warn_on = !!(condition); \
17 if (unlikely(__ret_warn_on)) \
18 __WARN_printf("assertion failed at %s:%d\n", \
19 __FILE__, __LINE__); \
20 unlikely(__ret_warn_on); \
21})
22
23#define WARN_ON_ONCE(condition) ({ \
24 static int __warned; \
25 int __ret_warn_once = !!(condition); \
26 \
27 if (unlikely(__ret_warn_once && !__warned)) { \
28 __warned = true; \
29 WARN_ON(1); \
30 } \
31 unlikely(__ret_warn_once); \
32})
33
34#define WARN_ONCE(condition, format...) ({ \
35 static int __warned; \
36 int __ret_warn_once = !!(condition); \
37 \
38 if (unlikely(__ret_warn_once)) \
39 if (WARN(!__warned, format)) \
40 __warned = 1; \
41 unlikely(__ret_warn_once); \
42})
43
44#endif /* _TOOLS_ASM_BUG_H */