ドキュメントの情報
はじめに
パート I Solaris プラットフォーム用デバイスドライバの設計
1. Solaris デバイスドライバの概要
2. 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. Solaris ドライバの強化
14. 階層化ドライバインタフェース (LDI)
パート II 特定の種類のデバイスドライバの設計
15. 文字デバイスのドライバ
16. ブロックデバイスのドライバ
17. SCSI ターゲットドライバ
18. SCSI ホストバスアダプタドライバ
19. ネットワークデバイスのドライバ
20. USB ドライバ
パート III デバイスドライバの構築
21. ドライバのコンパイル、ロード、パッケージ化、およびテスト
22. デバイスドライバのデバッグ、テスト、およびチューニング
23. 推奨されるコーティング方法
パート IV 付録
A. ハードウェアの概要
B. Solaris DDI/DKI サービスの概要
C. 64 ビットデバイスドライバの準備
D. コンソールフレームバッファードライバ
索引
この章では、Solaris マルチスレッドカーネルのロックプリミティブおよびスレッド同期機構について説明します。マルチスレッドを利用するようにデバイスドライバを設計することをお勧めします。この章では、次の内容について説明します。
「ロックプリミティブ」
「スレッド同期」
「ロック構成の選択」