linuxのメモ

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

bit操作 - variable_test_bit()

概要

ビットマップから任意のビットの状態を取得する

詳細

以下の引数を受け取る

  • ビット番号を示す : nr
  • ビットマップを保持する配列 : addr

返り値の値は0で初期化されおり、返り値の値にaddrのビットマップからnr番目のビットの値を加算することで、ビットマップの指定したビットの状態を取得する

  • アセンブラ命令btaddrnr番目のビットをCFフラグに退避する
  • アセンブラ命令sbbでCFフラグの値を返り値の変数に加算する