第2回 仕様と実際の処理を考える(前編)



この文章は、OS-9000/80386(OS-9/x86)およびOS-9/PowerPCに対応しています。



ここで制作するOS-9000用のファイルマネージャの機能を考えます。
OS-9000に標準で付いてくるファイルマネージャとしてはSCF、RBF、SBFなどがありますが、ちょっとしたI/Oデバイスを扱うにはちょっと大袈裟すぎます。そこで、ここで制作するファイルマネージャはおもいっきり低機能にして処理の殆どをデバイスドライバに任せる事を前提に設計してみます。
また、デバイスドライバをOS-9/68K風に作成できれば楽できそうなので、デバイスドライバを呼び出す部分はOS-9/68Kにある程度似せてみようと思います。

では、まず必要な機能を考えてみます。低機能だと銘打っていますので、RBFのようなマルチファイルはサポートしません。従ってこれに関する階層ディレクトリに関する処理は不要になります。また、ファイルの作成や削除などについても僅かな処理で済むようになります。
ファイルマネージャの各エントリ毎に必要な処理を考えます。

Attach

デバイスの初期化の為に呼び出されますので、必ずインプリメントしなければなりません。
以下の処理を行います。

Chdir

階層ディレクトリをサポートしないので、この機能はインプリメントしません。E_UNKSVCを返します。

Close

パスがクローズされた事をデバイスドライバへ通知するために以下の処理を行います。

Create

マルチファイルをサポートしないので、Openと同じ処理を行います。

Delete

マルチファイルをサポートしないので、インプリメントしません。E_UNKSVCを返します。

Detach

デバイスの後始末の為に呼び出されますので、必ずインプリメントしなければなりません。
以下の処理を行います。

Dup

特に処理を行いません。戻り値0でリターンします。

Getstat

機能が低い分ドライバに依存するので、Getstatはきちんとサポートする必要があります。ここの機能については後で考えます。

Makdir

階層ディレクトリはサポートしないので、この機能はインプリメントしません。E_UNKSVCを返します。

Open

パスがオープンされた事をデバイスドライバへ通知するために以下の処理を行います。

Read

この機能はデバイスドライバに任せます。ファイルマネージャでは以下の処理を行います。

Readln

行編集機能はサポートしないのでReadと同様の処理を行います。

Seek

この機能はサポートしません。ただし、エラーを返すと問題の発生するアプリケーションがあるかもしれないので、戻り値0でリターンします。

Setstat

機能が低い分ドライバに依存するので、Setstatはきちんとサポートする必要があります。ここの機能については後で考えます。

Write

この機能はデバイスドライバに任せます。ファイルマネージャでは以下の処理を行います。

Writeln

行編集機能はサポートしないのでWriteと同様の処理を行います。

前へ 次へ 戻る