linuxのメモ

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

バッファ操作 - rb_is_head_page()

概要

バッファがHead Pageか確認する

詳細

この関数では以下の引数を取得する

  • struct buffer_page構造体のポインタ : page
  • struct list_head構造体のポインタ : list

listnextメンバの値をRB_FLAG_MASKを反転した値でマスクした値とpagelistメンバの値が一致するか比較し、一致した場合はRB_PAGE_MOVEDを一致しなかった場合はlistnextメンバをRB_FLAG_MASKでマスクして算出される下位2bitの値を返す

従って、一致しなかった場合か一致しているが下位2bitに何らかの値を持っている場合にHead Pageと判断する