linuxのメモ

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

エラー出力 - RB_WARN_ON()

概要

条件に一致した場合にwarningエラーを出力する

詳細

このマクロでは以下の引数を受け取る

  • バッファを示す : b
  • 比較する値や式を示す : cond

unlikely()によりcondの比較結果が0である場合に高速に実行可能なコードを生成し、比較結果を一時変数に保持する

比較結果が0の場合は特に何も行わずに比較結果を返すが、0位外の値の場合は以下の処理を行う

  • __same_type()bstruct ring_buffer_per_cpu構造体と一致するか確認し、一致した場合はb->buffer->record_disabledを一致しなかった場合はb->record_disabledの値をatomic_inc()でインクリメントする
  • WARN_ON()に1を渡して実行することでwarningエラーを出力する