linux/include/asm-generic/bug.h
<<
>>
Prefs
   1#ifndef _ASM_GENERIC_BUG_H
   2#define _ASM_GENERIC_BUG_H
   3
   4#include <linux/compiler.h>
   5
   6#ifdef CONFIG_BUG
   7#ifndef HAVE_ARCH_BUG
   8#define BUG() do { \
   9        printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
  10        panic("BUG!"); \
  11} while (0)
  12#endif
  13
  14#ifndef HAVE_ARCH_BUG_ON
  15#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)
  16#endif
  17
  18#ifndef HAVE_ARCH_WARN_ON
  19#define WARN_ON(condition) do { \
  20        if (unlikely((condition)!=0)) { \
  21                printk("BUG: warning at %s:%d/%s()\n", __FILE__, __LINE__, __FUNCTION__); \
  22                dump_stack(); \
  23        } \
  24} while (0)
  25#endif
  26
  27#else /* !CONFIG_BUG */
  28#ifndef HAVE_ARCH_BUG
  29#define BUG()
  30#endif
  31
  32#ifndef HAVE_ARCH_BUG_ON
  33#define BUG_ON(condition) do { if (condition) ; } while(0)
  34#endif
  35
  36#ifndef HAVE_ARCH_WARN_ON
  37#define WARN_ON(condition) do { if (condition) ; } while(0)
  38#endif
  39#endif
  40
  41#define WARN_ON_ONCE(condition)                         \
  42({                                                      \
  43        static int __warn_once = 1;                     \
  44        int __ret = 0;                                  \
  45                                                        \
  46        if (unlikely((condition) && __warn_once)) {     \
  47                __warn_once = 0;                        \
  48                WARN_ON(1);                             \
  49                __ret = 1;                              \
  50        }                                               \
  51        __ret;                                          \
  52})
  53
  54#ifdef CONFIG_SMP
  55# define WARN_ON_SMP(x)                 WARN_ON(x)
  56#else
  57# define WARN_ON_SMP(x)                 do { } while (0)
  58#endif
  59
  60#endif
  61
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.