ドキュメントの情報
はじめに
パート I Solaris プラットフォーム用デバイスドライバの設計
1. Solaris デバイスドライバの概要
2. Solaris カーネルとデバイスツリー
3. マルチスレッド
4. プロパティー
5. イベントの管理とタスクのキュー
6. ドライバの自動設定
7. デバイスアクセス: プログラム式入出力
8. 割り込みハンドラ
9. ダイレクトメモリーアクセス (DMA)
DMA モデル
デバイス DMA の種類
バスマスター DMA
サードパーティー DMA
ファーストパーティー DMA
ホストプラットフォームの DMA の種類
DMA ソフトウェアコンポーネント: ハンドル、ウィンドウ、cookie
DMA 操作
バスマスター DMA 転送の実行
ファーストパーティー DMA 転送の実行
サードパーティー DMA 転送の実行
DMA 属性
ddi_dma_attr 構造体
SBus の例
ISA バスの例
DMA 資源の管理
オブジェクトのロック
DMA ハンドルの割り当て
DMA 資源の割り当て
デバイスレジスタ構造体
DMA コールバックの例
最大バーストサイズの決定
プライベート DMA バッファーの割り当て
資源割り当てエラーの処理
DMA エンジンのプログラミング
DMA 資源の解放
DMA ハンドルの解放
DMA コールバックの取り消し
メモリーオブジェクトの同期
キャッシュ
ddi_dma_sync() 関数
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. コンソールフレームバッファードライバ
索引
多くのデバイスは、バスを一時的に制御できます。これらのデバイスは、メインメモリーなどのデバイスを必要とするデータ転送を行うことができます。デバイスは CPU の助けを借りずにその処理を行なっているため、このようなデータ転送をダイレクトメモリーアクセス (Direct Memory Access、DMA) と呼びます。実行できる DMA 転送の種類は次のとおりです。
2 つのデバイス間
デバイスとメモリー間
メモリーとメモリー間
この章では、デバイスとメモリー間の転送についてのみ説明します。この章では、次の内容について説明します。
「DMA モデル」
「デバイス DMA の種類」
「ホストプラットフォームの DMA の種類」
「DMA ソフトウェアコンポーネント: ハンドル、ウィンドウ、cookie」
「DMA 操作」
「DMA 資源の管理」
「DMA ウィンドウ」