linux/tools/include/asm/bug.h
<<
>>
Prefs
   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