Appendix E. コンパイルオプションとシステムコール(ioctls を含む)

Table of Contents
E.1. 中間レベル
E.1.1. 中間レベルのコンパイルオプション
E.1.2. 中間レベルの ioctl
E.2. sd ドライバ
E.2.1. sd のコンパイルオプション
E.2.2. sd の ioctl と ユーザインタフェース
E.3. sr ドライバ
E.3.1. sr のコンパイルオプション
E.3.2. sr の ioctl と ユーザインタフェース
E.4. st ドライバ
E.4.1. st のコンパイルオプション
E.4.2. st の ioctl と ユーザインタフェース
E.5. sg ドライバ
E.5.1. sg のコンパイルオプション
E.5.2. sg の ioctl と ユーザインタフェース

この付録では、コンパイル時のオプションのうち、システム管理者が変更したくなる であろうものについて述べます。デフォルトではユーザの期待通りの選択がされて いるので、大多数は何も変更する必要はないでしょう。カーネル構築時オプションの 設定によっては、カーネルブート時のパラメタとモジュールロード時のパラメタが、 ドライバのコンパイル時オプションと同じ効果を持つ場合もあります。

システムコールは、アプリケーションプログラムとカーネルとそのドライバ間の インタフェースとして動作します。SCSI サブシステムが採用しているレイヤ化 されたドライバのアーキテクチャでは、システムコールの大半は高レベルの ドライバが処理しています。

SCSI サブシステムは「下層に通知していく」ioctl 構造になっています。まず オープンしているファイルディスクリプタに対応した高レベルのドライバが ioctl を解釈しようとします。 それができないと、ioctl は中間レベルに渡ります。中間レベルでも駄目な場合 、ファイルディスクリプタに対応した低レベルのドライバに渡ります。低レベルの ドライバも駄目なら、EINVAL エラーが生じます。

関連しているサブシステムに処理を任せる ioctl もあります。