Linuxのユーザ空間で動作させるアプリケーションを作成する。
処理内容としては、基本動作を確認するために、実装したdio_open
と
dio_release
を呼び出して、すぐに終了することにする。
システムコールのopen
は、ファイル・デスクリプタ(file descripter)を
fd
としたときに
とすればよい。
実際には、スペシャル・ファイルのオープンに失敗したときにそなえて、次のよ
うにしたほうがよい。
また、システムコールのclose
は、ファイルデスクリプタをfd
と
したときに
とすればよい。
open
システムコールとclose
システムコールのアプリケーションとし
て、次のようなテスト・プログラムにまとめる。
以下のコードを記述し、dio_tst.c
というソースファイルにする。
dio_tst.c
をコンパイルするためにMakefileに以下の記述を追加する。
次のように
の行にdio_tst
を付加する。
TARGETS = dio_drv.o dio_tst
さらに、 と の間に
dio_tst: dio_tst.c $(CC) -o dio_tst dio_tst.c
を付加する。
(注. $(CC) -o dio_tst dio_tst.c
の前の空間はTABにすること。)
これでドライバへのアクセスを行う簡単なテストプログラムができたので、これ
を使って、以下のように動作確認を行うことにする。
最初にテストプログラムdio_tst.c
を次のようにコンパイルする。
# make
コンパイルでエラーが出なければ、実行可能イメージとしてのdio_tst
ア
プリケーションが生成されているので、念のためls
コマンドで確かめること。
ドライバ(dio_drv.o
)がカーネル空間
に格納登録(insmod
)されている状態で、ユーザ空間からdio_tst
を、次のように実行する。
# ./dio_tst
下記のようなメッセージが返ってくればテストに成功したことになる。
[dio_open] ga Yobareta. [dio_release] ga Yobareta.