それぞれの
CD-ROM
デバイスは、
SCSI
仕様を異なったように解釈し得ます。
これにより、ドライバ中でドライブを特別扱いする必要性が発生します。
下記はドライバが認識する癖のリストです。
CD_Q_NO_TOUCH
|
このフラグは、
ディスクがドライブの中にあるかとサイズを調査するために、
アタッチ時にプローブしないようドライバに通知します。
現在このフラグは、CAM の
cd
ドライバでは実装されていません。
|
CD_Q_BCD_TRACKS
|
|
このフラグは、正しい 10 進数ではなくパックされた BCD でトラック番号を返す、
壊れたドライブ用です。
ドライブがトラックを飛ばしている
(トラック 10-15 が飛ばされる)
ような場合には、
あなたはこのフラグが必要なドライブを所有しています。
|
CD_Q_NO_CHANGER
|
|
このフラグは、当該ドライブがチェンジャではないことを、ドライバに通知します。
これはチェンジャの一部ではないが複数の LUN を持つ CD-ROM デバイス
にだけ必要です。
|
CD_Q_CHANGER
|
このフラグは、与えられたデバイスが複数の LUN を持つチェンジャであることを、
ドライバに通知します。
一般的には、LUN が 0 よりも大きい時には、ドライバはこれを自動的に理解します。
このフラグを設定する唯一の効果は、チェンジャのスケジューリングコードを通して、
チェンジャの LUN 0 に対して初期の容量読み取りコマンドを実行することを、
ドライバに通知することです。
|
CD_Q_10_BYTE_ONLY
|
|
このフラグは、与えられたデバイスが 10 バイトの MODE SENSE/MODE SELECT コマンド
のみを受け付けることを、ドライバに通知します。
一般的にこういった癖は
cd(4)
ドライバに追加されるべきではありません。
その理由は、ドライバは問題のドライブが 10 バイトコマンドを必要としているか
どうかを幾つかの方法で決定しようとするためです。
最初にドライバは、ドライブが一般的に話すプロトコルが 10 バイトコマンドを
認めるかどうかを決定するために CAM Path Inquiry (CAM パス照会) コマンドを
発行します。
(ATAPI および USB は一般的に 10 バイトコマンドのみを送りたい
プロトコルの 2 つの顕著な例です。)
それから、6 バイトの MODE SENSE または MODE REQUEST コマンド
から ILLEGAL REQUEST エラーが返された場合には、代わりに
そのコマンドの 10 バイトバージョンを送ろうとします。
癖が必要になるだろう唯一の理由は、ドライブが一般的に 6 バイトコマンドに問題を
持っていないプロトコル (例えば
SCSI)
の場合です。
|