Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

ドライバのロードとアンロード

デバイスドライバに関連付けられている特殊ファイルを開く (デバイスにアクセスする) と、そのドライバがロードされます。modload (1M) コマンドを使用するとドライバをメモリーにロードできますが、モジュール内のルーチンは modload では呼び出されません。推奨されるのはデバイスを開く方法です。

通常、デバイスが使用されなくなると、システムがデバイスドライバを自動的にアンロードします。開発時には、modunload(1M) を使用してドライバを明示的にアンロードする場合があります。modunload が正しく機能するには、デバイスドライバがアクティブでない必要があります。 open(2)mmap (2) などを通して、デバイスに対する未処理の参照が存在していてはいけません。

modunload コマンドは引数として、ランタイム依存の module_id を受け取ります。module_id を見つけるには、grep を使用して、modinfo (1M) の出力で目的のドライバ名を検索します。最初の列を確認します。

# modunload -i module-id

現在ロードできないモジュールをすべてアンロードするには、モジュール ID として 0 を指定します。

# modunload -i 0

modunload(1M) が成功するには、ドライバがアクティブでないことに加えて、ドライバでdetach(9E) ルーチンと_fini(9E) ルーチンが動作している必要があります。