FAT12ファイルのインポート計画
連休の前半2日間はかなりアクティブに出かけまくったので、今日はのんびりコード書いたりDVDを見たりする予定。
VnodeフレームワークにFAT12のコードを取り込む計画を立てる。
突然取り込むのではなくある程度考えてからのほうが良いと思う。
まずISO9660と大きく違うのは書き込みがある点。write/touchなどをうまくVnodeフレームワークに追加しなければいけない。
あとは前回特に反省したのが、なるべく現状のコードに手を入れずに動かす可能性を考慮しなかったこと。
用心深くwrapすれば、最小限のコードの変更で取り込めるはずである。(時間とデバッグの手間の節約になる。)
こんな感じでVnodeインターフェースに対応してどれを呼べばよいか大雑把にまとめていった。
- lookup(Vnode* diretory, const std::string& file, Vnode** found, int type);
- dir = searchFile()
- file = dir->getFile()
- open(Vnode* file, int mode);
- lookup
- createfile
- read(Vnode* file, struct io::Context* context);
- file->read
- seek(Vnode* file, dword offset, dword origin);
- file->seek
- readdir(Vnode* directory, monapi_cmemoryinfo** entries);
- readDir
- close(Vnode* file);
- close
- stat(Vnode* file, Stat* st);
- file->アクセサ
うん。うまくいきそうだ。
一晩寝かして明日取り掛かります。