Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _TOOLS_ASM_BUG_H
0003 #define _TOOLS_ASM_BUG_H
0004 
0005 #include <linux/compiler.h>
0006 #include <stdio.h>
0007 
0008 #define __WARN_printf(arg...)   do { fprintf(stderr, arg); } while (0)
0009 
0010 #define WARN(condition, format...) ({       \
0011     int __ret_warn_on = !!(condition);  \
0012     if (unlikely(__ret_warn_on))        \
0013         __WARN_printf(format);      \
0014     unlikely(__ret_warn_on);        \
0015 })
0016 
0017 #define WARN_ON(condition) ({                   \
0018     int __ret_warn_on = !!(condition);          \
0019     if (unlikely(__ret_warn_on))                \
0020         __WARN_printf("assertion failed at %s:%d\n",    \
0021                 __FILE__, __LINE__);        \
0022     unlikely(__ret_warn_on);                \
0023 })
0024 
0025 #define WARN_ON_ONCE(condition) ({          \
0026     static int __warned;                \
0027     int __ret_warn_once = !!(condition);        \
0028                             \
0029     if (unlikely(__ret_warn_once && !__warned)) {   \
0030         __warned = true;            \
0031         WARN_ON(1);             \
0032     }                       \
0033     unlikely(__ret_warn_once);          \
0034 })
0035 
0036 #define WARN_ONCE(condition, format...) ({  \
0037     static int __warned;            \
0038     int __ret_warn_once = !!(condition);    \
0039                         \
0040     if (unlikely(__ret_warn_once))      \
0041         if (WARN(!__warned, format))    \
0042             __warned = 1;       \
0043     unlikely(__ret_warn_once);      \
0044 })
0045 
0046 #endif /* _TOOLS_ASM_BUG_H */