名前 | 形式 | インタフェースレベル | パラメータ | 機能説明 | 戻り値 | コンテキスト | 関連項目 | 注意事項
#include <sys/scsi/scsi.h>int scsi_hba_attach_setup(dev_info_t *dip, ddi_dma_attr_t *hba_dma_attr, scsi_hba_tran_t *hba_tran, int hba_flags);
Solaris アーキテクチャ固有 (Solaris DDI)。
dev_info_t 構造に対するポインタで、HBA デバイスのインスタンスを参照します。
ddi_dma_lim(9S) 構造に対するポインタ。
scsi_hba_tran(9S) 構造に対するポインタ。
フラグ修飾子。唯一の定義済みフラグ値は、SCSI_HBA_TRAN_CLONE です。
将来の拡張に備えて HBA ドライバによって提供されるオプションの機能で、NULL でなければなりません。
ddi_dma_attr(9S) 構造に対するポインタ。
scsi_hba_attach_setup() は、scsi_hba_attach() に代わる推奨インタフェースです。
scsi_hba_attach_setup() および scsi_hba_attach() に関して:
scsi_hba_attach() は、DMA 限界値 hba_lim と、dip によって定義される HBA デバイスの各インスタンスの転送ベクトル hba_tran を登録します。scsi_hba_attach_setup() は、DMA 属性 hba_dma_attr と、dip によって定義される HBA デバイスの各インスタンスの転送ベクトル hba_tran を登録します。HBA ドライバは、異なる DMA 限界値または DMA 属性、および必要に応じてデバイスの各インタフェースに対する転送ベクトルを渡すことができ、HBA 自身によって課せられたいかなる制約にも対応します。
scsi_hba_attach() および scsi_hba_attach_setup() は、dev_ops(9S) 構造内の dev_bus_ops フィールドを使用します。 HBA ドライバは、scsi_hba_attach() または scsi_hba_attach_setup() を呼び出す前に、このフィールドを NULL に初期化する必要があります。
SCSI_HBA_TRAN_CLONE が hba_flags で要求される場合、hba_tran 構造は、各ターゲットが HBA に接続されるたびに 1 回複製されます。構造の複製は、ターゲットを初期化するために tran_tgt_init(9E) エントリポイントが呼び出される前に行われます。後続のすべての HBA エントリポイント ( tran_tgt_init(9E) も含めて) で、引数として渡された、または scsi_address 構造で検出された scsi_hba_tran_t 構造は、「複製された」 scsi_hba_tran_t 構造になるので、HBA は、scsi_hba_tran_t の tran_tgt_private フィールドを使用してターゲットごとのデータを指定できます。HBA は、切り離しの際に割り当てられたものと同じ scsi_hba_tran_t 構造だけを注意して解放する必要があります。システムによって割り当てられたすべての「複製された」 scsi_hba_tran_t 構造は、システムによって解放されます。
scsi_hba_attach() および scsi_hba_attach_setup() は、同じ名前の属性がすでにそのノードに接続されていない限り、多数の整数値属性を dip に接続します。HBA ドライバは、これらの構成パラメータを ddi_prop_get_int(9F) を使用して検出し、HBA を提供した機能に対するあらゆる設定に従う必要があります。
設定しない場合、HBA はターゲットデバイスに切り離し (Disconnect) 特権を認可しません。
設定しない場合、HBA はリンクされたコマンド (Linked Commands) を有効にしません。
設定しない場合、HBA は、コマンドタグ付き待ち行列 (Command Tagged Queing) モードでは動作しません。
設定しない場合、HBA はパリティーモードでは作動しません。
設定しない場合、HBA はクイックアービトレーション選択 (Quick Arbitration Select) 機能を利用しません。ご使用のマシンが QAS をサポートするかどうかは、サンのハードウェアマニュアルで確認してください。
設定しない場合、HBA は、バスを FAST SCSI モードで機能させません。
設定しない場合、HBA は、バスを FAST20 SCSI モードで機能させません。
設定しない場合、HBA は、バスを FAST40 SCSI モードで機能させません。
設定しない場合、HBA は、バスを FAST80 SCSI モードで機能させません。
設定しない場合、HBA は、バスを FAST160 SCSI モードで機能させません。
設定しない場合、HBA は、バスを FAST320 SCSI モードで機能させません。
設定しない場合、HBA は、バスをWIDE SCSI モードで機能させません。
設定しない場合、HBA は、バスを同期転送モードで機能させません。
SCSI バスまたはデバイスのリセット回復時間 (ミリ秒)。
デフォルトの SCSI 選択フェーズタイムアウト値 (ミリ秒)。HBA 固有の情報については、HBA の各マニュアルページを参照してください。
scsi_hba_detach() に関して:
scsi_hba_detach() は、DMA 限界値または属性の構造および HBA ドライバの指定されたインスタンスに対する転送ベクトルへの参照を除去します。
scsi_hba_attach()、scsi_hba_attach_setup()、および scsi_hba_detach() は、関数の呼び出しに成功すると DDI_SUCCESS を返し、失敗すると DDI_FAILURE を返します。
scsi_hba_attach() および scsi_hba_attach_setup() は、attach(9E) から呼び出されます。scsi_hba_detach() は、detach(9E) から呼び出されます。
attach(9E), detach(9E), tran_tgt_init(9E), ddi_prop_get_int(9F) , ddi_dma_attr(9S), ddi_dma_lim(9S), dev_ops(9S), scsi_address(9S)、および scsi_hba_tran(9S)
scsi_hba_detach() が呼び出された後に、SCSI ターゲットデバイスドライバの代わりに転送要求が行われないようにするのは HBA ドライバの役割です。
scsi_hba_attach() 関数は、古く、将来のリリースでは廃止されます。この関数は、scsi_hba_attach_setup() で置き換えられます。
名前 | 形式 | インタフェースレベル | パラメータ | 機能説明 | 戻り値 | コンテキスト | 関連項目 | 注意事項