root/tools/include/asm/bug.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 */

/* [<][>][^][v][top][bottom][index][help] */