ドキュメントの情報
はじめに
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
1. Oracle Solaris デバイスドライバの概要
2. Oracle Solaris カーネルとデバイスツリー
3. マルチスレッド
ロックプリミティブ
ドライバデータのストレージクラス
相互排他ロック
mutex の設定
mutex の使用
読み取り/書き込みロック
セマフォー
スレッド同期
スレッド同期における条件変数
条件変数の初期化
条件の待機
条件のシグナル送信
cv_wait() および cv_timedwait() 関数
cv_wait_sig() 関数
cv_timedwait_sig() 関数
ロック構成の選択
ロックの潜在的な危険性
スレッドがシグナルを受信できない
4. プロパティー
5. イベントの管理とタスクのキュー
6. ドライバの自動構成
7. デバイスアクセス: プログラム式入出力
8. 割り込みハンドラ
9. ダイレクトメモリーアクセス (DMA)
10. デバイスメモリーおよびカーネルメモリーのマッピング
11. デバイスコンテキスト管理
12. 電源管理
13. Oracle Solaris ドライバの強化
14. 階層化ドライバインタフェース (LDI)
パート II 特定の種類のデバイスドライバの設計
15. 文字デバイスのドライバ
16. ブロックデバイスのドライバ
17. SCSI ターゲットドライバ
18. SCSI ホストバスアダプタドライバ
19. ネットワークデバイスのドライバ
20. USB ドライバ
21. SR-IOV ドライバ
パート III デバイスドライバの構築
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
24. 推奨されるコーティング方法
パート IV 付録
A. ハードウェアの概要
B. Solaris DDI/DKI サービスのサマリー
C. 64 ビットデバイスドライバの準備
D. コンソールフレームバッファードライバ
E. pci.conf ファイル
索引
この章では、Oracle Solaris マルチスレッドカーネルのロックプリミティブおよびスレッド同期メカニズムについて説明します。マルチスレッドを利用するようにデバイスドライバを設計することをお勧めします。この章では、次の内容について説明します。
「ロックプリミティブ」
「スレッド同期」
「ロック構成の選択」