open (続)
手元にある Linux カーネル 2.6 解読室に情報満載。15 章とか 16 章のあたり。
オープンについては 16.1 でパス名ルックアップについては 15.9.1 に詳細な記述あり。lookup 関連についてはぶっちゃけ別途確認します。
件の_カーネルが呼び出しエントリポイントを決定する方法_のナニは __dentry_open 関数との事。ええと記述を引用すると
__path_lookup_open で、file 構造体の獲得およびパス名のルックアップ処理を行なっています。
Linux カーネル 2.6 解読室 16.1 節より引用
あるいは
file オペレーション (f_op) として、inode 構造体の i_op メンバが設定されます。これで、file 構造体にもファイルシステム固有のオペレーションが設定されました。
Linux カーネル 2.6 解読室 16.1 節より引用
との事。コードは以下
f->f_op = fops_get(inode->i_fop);
15 章の VFS のあたりは C でオブジェクト指向な教科書としての kernel 読みのための資料と言っても過言ではない ?
とりあえず
仕事が残っているので今日はこれで中断。(とほほほ