linuxのメモ

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

バッファ操作 - __rb_page_index()

概要

バッファのデータを保持するアドレスを取得する

詳細

この関数ではstruct buffer_page構造体に含まれるstruct buffer_data_page構造体のpageメンバのdataメンバの指定したindexのアドレスを取得する

struct buffer_data_page構造体のdataメンバはchar型の配列として定義されているため通常1バイトとなるが、RB_ALIGN_DATAでアライメントされるため最大でCONFIG_HAVE_64BIT_ALIGNED_ACCESSが有効な場合は8バイト、無効な場合は4バイトの領域を保持できる

また、返り値はvoid型のポインタとなるため、関数の呼び出し元で指定したデータ型にキャストされる