ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
デバイスドライバのコードは通常、次のファイルに分割されます。
ヘッダーファイル (.h ファイル)
ソースファイル (.c ファイル)
オプション構成ファイル (driver.conf ファイル)
デバイス固有のデータ構造体 (デバイスレジスタを表す構造など)
ドライバによって定義された、状態情報を維持管理するためのデータ構造体
定義済みの定数 (デバイスレジスタのビットを表す定数など)
マクロ (マイナーデバイス番号とインスタンス番号の間の静的マッピングを定義するマクロなど)
状態構造体など、ヘッダーファイルの定義の一部は、デバイスドライバでのみ必要になることがあります。この情報はデバイスドライバ自体によってのみ含められる private ヘッダーファイルに入れる必要があります。
入出力制御コマンドなど、アプリケーションが必要とすることがある情報はすべて、public ヘッダーファイルに含める必要があります。これらのファイルはドライバと、デバイスに関する情報を必要とするすべてのアプリケーションによって含められます。
private ファイルと public ファイルの命名に関する標準はありませんが、private ヘッダーファイルの場合は xximpl.h が、public ヘッダーファイルの場合は xxio.h が命名規則の 1 つです。
デバイスドライバの C ソースファイル (.c ファイル) は次のことを行います。
データ宣言と、ドライバのエントリポイントのコードを格納します。
ドライバに必要な #include 文を格納します。
extern 参照を宣言します。
ローカルデータを宣言します。
cb_ops 構造体と dev_ops 構造体を設定します。
モジュール構成のセクション、つまり modlinkage(9S) 構造体と modldrv(9S) 構造体を宣言して初期化します
その他に必要なすべての宣言を行います。
ドライバのエントリポイントを定義します。
一般に、ドライバの構成ファイルでは、ドライバが必要とするすべてのプロパティーが定義されます。ドライバ構成ファイルのエントリは、存在するかどうかをドライバが調べる可能性があるデバイスインスタンスを指定します。ドライバのグローバルプロパティーはドライバの設定ファイル内で設定できます。詳細については、driver.conf(4) のマニュアルページを参照してください。
ドライバ構成ファイルは、自己識別型ではないデバイスのために必要です。
自己識別デバイス (SID) については、ドライバ構成ファイルを省略可能です。自己識別デバイスの場合、SID ノードにプロパティーを追加するために構成ファイルを使用できます。
次のプロパティーは、ドライバ設定ファイルで設定されないプロパティーの例です。