Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/include/asm/bug.h
26282 views
1
/* SPDX-License-Identifier: GPL-2.0 */
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(stderr, arg); } while (0)
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 failed at %s:%d\n", \
21
__FILE__, __LINE__); \
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 && !__warned)) { \
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
48