linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

warning

エラー出力 - RB_WARN_ON()

概要 条件に一致した場合にwarningエラーを出力する 詳細 このマクロでは以下の引数を受け取る バッファを示す : b 比較する値や式を示す : cond unlikely()によりcondの比較結果が0である場合に高速に実行可能なコードを生成し、比較結果を一時変数に保持す…

トレース - disable_trace_on_warning()

概要 warning error時にtraceを無効にする 詳細 __disable_trace_on_warningがtrueのときにtracing_off()を実行しtraceを無効にする

エラー出力 - warn_slowpath_null()

概要 ワーニングエラーを出力する 詳細 ファイル名と行数を引数として受け取り、warn_slowpath_common()を実行する。 warn_slowpath_common()の引数として以下の値を渡す。 取得したファイル名 取得した行数 呼び出し元のアドレス TAINT_WARN NULL

エラー出力 - WARN_ON()

概要 conditionがtrueの場合にwarningエラーを出力する 詳細 CONFIG_BUGの設定で挙動が変わる 無効な場合はエラー出力を行わない 有効な場合は__WARN()を実行する

エラー出力 - __WARN()

概要 ワーニングエラーを出力する 詳細 __WARN_TAINTが定義されている場合__WARN_TAINT()_マクロを実行するが、 x86では定義されていないため__FILE__・__LINE__を引数としてwarn_slowpath_null()関数を実行する

エラー出力 - WARN_ON_ONCE()

概要 conditionがtrueの場合にwarningエラーを一度だけ出力する 詳細 CONFIG_BUGの設定で挙動が変わる 無効な場合はエラー出力を行わない 有効な場合は、WARN_ON()マクロを一度だけ実行する このマクロ内でstaic変数に実行済みかどうかのフラグを持たせるこ…