SCIOCMD SCSI アダプター・デバイス・ドライバー ioctl 操作
目的
SCSI デバイスに対して任意の SCSI コマンドを発行する手段を提供します。
説明
_ 翻訳不要 _SCIOCMD 操作により、呼び出し元は選択されたアダプターに対して SCSI コマンドを発行できます。 このコマンドは、SCSI 装置の構成を支援するために、システム管理ルーチンによって使用することができます。
SCIOCMD 操作の arg パラメーターは、 sc_passthru 構造体のアドレスです。これは、 /usr/include/sys/scsi.h フィールドに定義されています。 sc_passthru パラメーターを使用すると、呼び出し元は、コマンドを送信する SCSI および LUN IDS を選択できます。
SCSI 状況バイトおよびアダプター状況バイトは、 sc_passthru 構造体を介して戻されます。 もし、 SCIOCMD操作は値を返します-1 errno グローバル変数がゼロ以外の値に設定されている場合、要求された操作は失敗します。 これが発生した場合、呼び出し元は、返された状況バイトを評価して、操作が失敗した理由と、実行する必要があるリカバリー・アクションを判別する必要があります。
もし、 SCIOCMD操作は失敗しました。 sc_passthru構造体に無効な値がある場合、サブルーチンは値を返します。-1 errnoグローバル変数は次のように設定されます。アインヴァル、 そしてその無効な引数フィールドは、無効な値があったフィールドのフィールド番号 (バージョン フィールドの場合は 1 から始まる) に設定されます。 EINVAL_ARG フィールドの値が 0 の場合は、追加情報がないことを示します。
- 変数 cdb_ptr は、変数 SCSI cdb を含むバッファーを指すポインターです。
- 変数 cdb_length は、 変数 cdb_ptr フィールドが指す CDB 変数の長さを決定します。
デバイス情報 構造は、コマンドの最大転送サイズを定義します。 最大転送サイズを超えて転送しようとすると、サブルーチンは次の値を返します。-1 errnoグローバル変数を次の値に設定します。アインヴァルを設定し、無効な引数フィールドの値を 18 に設定します。
特定の装置の要求センス・データの形式については、「 Small Computer System Interface (SCSI) 仕様 」を参照してください。
戻り値
| 項目 | 説明 |
|---|---|
| EIO | システム・エラーが発生した。 別の試行が成功する可能性があるため、操作を複数回試行することを検討してください。 EIO 社 エラーが発生し、 状況の妥当性 フィールドが SC_SCSI エラーに設定されている場合、 SCSI 状況 フィールドには有効な値が設定されているため、検査する必要があります。 状況の妥当性 フィールドがゼロのままで、その後の試行でも同じままである場合は、リカバリー不能エラーが発生しています。 状況の妥当性 フィールドが SC_SCSI エラー で、 SCSI 状況 フィールドに チェック条件 状況が含まれている場合、センス・データをリカバリーするために _ 翻訳不要 _SCIOCMD ioctl を使用して SCSI 要求センスを発行する必要があります。 |
| EFAULT | ユーザー・プロセス・コピーが失敗しました。 |
| EINVAL | 装置がオープンされていないか、呼び出し側が sc_passthru 構造体のフィールドを無効な値に設定しました。 |
| EACCES | アダプターは診断モードです。 |
| ENOMEM | メモリー要求が失敗しました。 |
| ETIMEDOUT | コマンドがタイムアウトになりました。 別の試行が成功する可能性があるため、操作を数回試行することを検討してください。 |
| ENODEV | 装置が応答していません。 |
| ETIMEDOUT | タイムアウト値を超える前に操作が完了しませんでした。 |
ファイル
| 項目 | 説明 |
|---|---|
| /dev/scsi0, /dev/scsi1, ... /dev/scsin | すべての SCSI デバイス・ドライバーが SCSI デバイスまたはアダプターにアクセスするためのインターフェースを提供します。 |