投稿

6月, 2019の投稿を表示しています

MochiOS@仮想ファイルシステムの作成part5

イメージ
MochiOS@仮想ファイルシステムの作成part5 前提知識無しで作るなんちゃって仮想ファイルシステムpart5。 開発日記です。独り言です。 これまでのあらすじ part 内容 0 仮想ファイルシステムを作りたい宣言をする。 1 ざっくり仮想ファイルシステムの機能を決める。 が、機能呼出し先の仮想ファイルシステムのタスクIDをどう取得するかという問題に気付く。 2 カーネルにタスク名登録機能を実装した。 これでタスク名からタスクIDを取得する事が出来る様になるハズ、なので試したいが試す方法が無い事に気付き、ログ出力タスクの開発を宣言する。 3 ログ出力の為に使うvsnprintf()の仕様を調べる。 4 ログ出力タスクを開発してタスク名からタスクIDの取得機能が正しく動いている事が確認できた。 共通メッセージフォーマットを決める ようやっとタイトルに相応しい内容が書ける。メッセージフォーマットを決めます。 まぁ、mvfsライブラリでその他のプロセスにはメッセージを隠蔽するので適当に作ればいいのだけれど、設計して書き残しておかないと忘れちゃうよね~。 とりあえず、以下のようなフォーマットとしておく。 offset size 内容 0x00 4 機能ID 0x04 4 タイプ(要求/応答) 0x0c 可変 機能ID毎のデータ ただ、このフォーマットだと後々に色々と問題が出てくる。要求と応答メッセージの対応が分からない、とか。一旦リリースした後に改変したくなった時にバージョン違いとの互換性をどうするか、とか。 でも、今は考えない。困ったら考えよう。行動力第一。 以下、機能IDとタイプの値を決めておく。 機能ID 意味 0x0000_0000 mount 0x0000_0001 open 0x0000_0002 read 0x0000_0003 write 0x0000_0004 close 0x0000_0005 unmount タイプ 意味 備考 0x0000_0000 要求 mvfsへのメッセージ