linuxのメモ

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

バッファ操作 - rb_is_reader_page()

概要

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

詳細

この関数ではstruct buffer_page構造体のポインタであるpageを引数として取得する

pagelistメンバからstruct list_head構造体のprevメンバのポインタを取得し、取得したポインタのnextメンバのアドレスとrb_list_head()pagelistメンバを渡して取得したアドレスが一致しなかった場合はReader Pageと判断する

これは通常、リストの前の要素の次の要素は現在の要素を指すが、Reader Pageはリストから外れているため既存の要素以外を指しているためです