JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
デバイスドライバの記述     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I Solaris プラットフォーム用デバイスドライバの設計

1.  Solaris デバイスドライバの概要

2.  Solaris カーネルとデバイスツリー

3.  マルチスレッド

4.  プロパティー

5.  イベントの管理とタスクのキュー

6.  ドライバの自動設定

7.  デバイスアクセス: プログラム式入出力

8.  割り込みハンドラ

9.  ダイレクトメモリーアクセス (DMA)

10.  デバイスメモリーおよびカーネルメモリーのマッピング

11.  デバイスコンテキスト管理

12.  電源管理

13.  Solaris ドライバの強化

14.  階層化ドライバインタフェース (LDI)

パート II 特定の種類のデバイスドライバの設計

15.  文字デバイスのドライバ

16.  ブロックデバイスのドライバ

17.  SCSI ターゲットドライバ

18.  SCSI ホストバスアダプタドライバ

ホストバスアダプタドライバの概要

SCSI インタフェース

SCSA HBA インタフェース

SCSA HBA エントリポイントの概要

SCSA HBA データ構造体

scsi_hba_tran() 構造体

scsi_address 構造体

scsi_device 構造体

scsi_pkt 構造体 (HBA)

ターゲットインスタンスごとのデータ

トランスポート構造体の複製

SCSA HBA 関数

HBA ドライバの依存性と設定に関する問題

宣言と構造体

コマンド別構造体

モジュール初期化用のエントリポイント

_init() エントリポイント (SCSI HBA ドライバ)

_fini() エントリポイント (SCSI HBA ドライバ)

自動設定のエントリポイント

attach() エントリポイント (SCSI HBA ドライバ)

detach() エントリポイント (SCSI HBA ドライバ)

SCSA HBA ドライバのエントリポイント

ターゲットドライバインスタンスの初期化

tran_tgt_init() エントリポイント

tran_tgt_probe() エントリポイント

tran_tgt_free() エントリポイント

資源割り当て

tran_init_pkt() エントリポイント

scsi_pkt(9S) 構造体の割り当てと初期化

DMA 資源の割り当て

データ転送のための DMA 資源の再割り当て

tran_destroy_pkt() エントリポイント

tran_sync_pkt() エントリポイント

tran_dmafree() エントリポイント

コマンドのトランスポート

tran_start() エントリポイント

割り込みハンドラとコマンドの完了

タイムアウトハンドラ

機能管理

tran_getcap() エントリポイント

tran_setcap() エントリポイント

中止およびリセット管理

tran_abort() エントリポイント

tran_reset() エントリポイント

tran_bus_reset() エントリポイント

tran_reset_notify() エントリポイント

動的再構成 (DR)

SCSI HBA ドライバに固有の問題

HBA ドライバのインストール

HBA の設定プロパティー

scsi-reset-delay プロパティー

scsi-options プロパティー

ターゲットごとの scsi-options

x86 ターゲットドライバの設定プロパティー

キューイングのサポート

19.  ネットワークデバイスのドライバ

20.  USB ドライバ

パート III デバイスドライバの構築

21.  ドライバのコンパイル、ロード、パッケージ化、およびテスト

22.  デバイスドライバのデバッグ、テスト、およびチューニング

23.  推奨されるコーティング方法

パート IV 付録

A.  ハードウェアの概要

B.  Solaris DDI/DKI サービスの概要

C.  64 ビットデバイスドライバの準備

D.  コンソールフレームバッファードライバ

索引

ホストバスアダプタドライバの概要

第 17 章SCSI ターゲットドライバで説明しているように、DDI/DKI では、SCSI デバイスへのソフトウェアインタフェースが次の大きな 2 つの部分に分割されています。

ターゲットデバイスは、ディスクやテープドライブなどの SCSI バス上のデバイスを指します。ターゲットドライバは、デバイスドライバとしてインストールされるソフトウェアコンポーネントを指します。SCSI バス上の各ターゲットデバイスは、ターゲットドライバの 1 つのインスタンスで制御されます。

ホストバスアダプタデバイスは、SBus や PCI SCSI アダプタカードなどの HBA ハードウェアのことです。ホストバスアダプタドライバは、デバイスドライバとしてインストールされるソフトウェアコンポーネントのことです。たとえば、SPARC マシン上の esp ドライバ、x86 マシン上の ncrs ドライバ、どちらのアーキテクチャーでも動作する isp ドライバがこれに該当します。HBA ドライバのインスタンスは、システムに構成されているそれぞれのホストバスアダプタデバイスを制御します。

SCSA (Sun Common SCSI Architecture) は、ターゲットコンポーネントと HBA コンポーネント間のインタフェースを定義します。


注 - SCSI ターゲットドライバを理解しておくと、効果的な SCSI HBA ドライバを作成できます。SCSI ターゲットドライバについては、第 17 章SCSI ターゲットドライバを参照してください。ターゲットドライバの開発者にとっても、この章を読むことで利点を得ることができます。


ホストバスアダプタドライバは、次のタスクを実行します。