MochiOS@仮想ファイルシステムの作成part2
前提知識無しで作るなんちゃって仮想ファイルシステムpart2。
開発日記です。独り言です。タスク名登録機能
前回、「あれ、仮想ファイルシステムにメッセージ送るにはどうすんのよ?」というわけで、カーネルに機能を追加した。https://ja.osdn.net/projects/mochi/scm/git/master/commits/891fd7049c315ec439dd52fdd3eaeb780d374e95
- タスク名登録(MkTaskNameRegister())
- 任意のタスク名を登録。タスク名とタスクIDの関連付けが行える。
- タスク名登録解除(MkTaskNameUnregister())
- 登録したタスク名とタスクIDの関連付けを解除する。
- タスクID取得(MkTaskNameGet())
- タスク名に一致するタスクIDを取得する。
試したい
作っただけで動くか確認していないので、試したい。けど、どう試したものか…。
- 画面にログを出力するタスクを作る。
- いっそシリアルポートにログをたれ流せる様なタスクを作る。
- カーネルのデバッグログ出力機能を使う。
- メモリにログを書き出して、頑張ってメモリダンプして見る。
- 成功したら再起動させる。
画面にログを出力するタスクを作る。
面倒臭いのは確か。1トレースログ1行で画面に出力していくと最下行に来た時に画面スクロールする機能を作らないといけないし。
でも、これからもトレースログで動作を確認したい事はあるので頑張って作る事にする。幸い、カーネルにも以前OSCで展示用に作っていた端末エミュレータのソースコードもあるので、あまり考えずに切り貼りして作れそう。
とりあえずmlogという名前を付けた。Mochi Log。安易。déjà-vu。
ちなみに物理メモリ領域の割り当てはドライバタイプのプロセスしか行えない仕様なので、mlogはドライバとなる。イメージ的にはサーバタイプのプロセスなのだけれど、直接画面出力する機能を付ける為には仕方が無い。
本当はちゃんとビデオドライバ、端末エミュレータサーバに機能分割して、タスク間通信して機能実装するのが正論なのだけれど、それには結局、ファイルサーバの存在が不可欠でイタチゴッコとなるので、我慢。
後は、タスク名"LOG"を名乗ってるタスクにログ出力メッセージを投げつければ、うまい事画面にログが流れる。
とりあえず、mlogのリポジトリ登録した。
https://github.com/MasterMochi/mlog
コメント
コメントを投稿