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->アクセサ


うん。うまくいきそうだ。
一晩寝かして明日取り掛かります。