*参照元 [#cce305f9]
#backlinks

*説明 [#pd9831e5]
-パス: [[linux-2.6.33/include/asm-generic/bug.h]]
x86 版: [[linux-2.6.33/BUG()(x86)]]
--x86 版: [[linux-2.6.33/BUG()(x86)]]

-バグ警告を出してカーネルを停止(パニック)させる。


**引数 [#na0af98b]
-なし


**返り値 [#j5fc4ae9]
-なし


**参考 [#d68682db]
-独自の BUG() を実装しているアーキテクチャ
 $ grep -r HAVE_ARCH_BUG . | grep define | grep -v BUG_ON
 ./arch/alpha/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/arm/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/avr32/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/blackfin/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/cris/include/arch-v10/arch/bug.h:#define HAVE_ARCH_BUG
 ./arch/cris/include/arch-v32/arch/bug.h:#define HAVE_ARCH_BUG
 ./arch/frv/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/ia64/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/m68k/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/mips/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/mn10300/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/parisc/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/powerpc/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/s390/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/sh/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/sparc/include/asm/bug.h:#define HAVE_ARCH_BUG
 ./arch/x86/include/asm/bug.h:#define HAVE_ARCH_BUG


*実装 [#e7675614]
***CONFIG_BUG が未定義の場合 [#pc0c4952]
 #ifdef CONFIG_BUG
 
 (...略...)
 
 #ifndef HAVE_ARCH_BUG
-アーキテクチャ固有の BUG() がなければ共通の BUG() を使う。
--ほぼ全てのアーキテクチャが独自の BUG() を定義している。

 #define BUG() do { \
         printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__
 ); \
         panic("BUG!"); \
 } while (0)
-バグ警告(バグの発生したソースファイル、行番号、関数名)を表示して、
カーネルパニックさせる。
--[[linux-2.6.33/printk()]]
--[[linux-2.6.33/panic()]]

 #endif
 
 (...略...)

***CONFIG_BUG が未定義の場合 [#f656daf4]
 #else /* !CONFIG_BUG */
 #ifndef HAVE_ARCH_BUG
 #define BUG()
-何もしない

 #endif
 
 (...略...)
 
 #endif


*コメント [#q589800b]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS