前へ | 次へ | 目次 | 索引 |
USER_PARAM = "some data" |
次に変換される必要がある。
BEGIN_PRIVATE "some data" END_PRIVATE |
ISA_CONFIG.DAT にある USER_PARAM キーワードは引用符を渡すので,この変換を行うときに PRIVATE_DATA は使用できない。
ISA ドライバは,関数コード IOC$K_ISA_USER_PARAM 付きで IOC$NODE_DATA を呼び出すことで, BEGIN_PRIVATE と END_PRIVATE の間にあるデータを取り出すことができる。
表 8-1 は,構成ファイルに入れられるキーワードを示しています。
キーワード | 必須 | 説明 |
---|---|---|
DEVICE | 必須 | 装置記述を開始する |
END_DEVICE | 必須 | 装置記述を終了する |
ID | 必須 | ハードウェア ID を指定する |
NAME | 必須 | 装置名 |
DRIVER | 必須 | ドライバ名 |
ADAPTER | 必須 | アダプタ・タイプ |
UNITS | 必須ではない | ユニット 省略値: 1 |
FLAGS | 必須ではない | 装置フラグ: 省略値: フラグなし |
PRIVATE_DATA | 必須ではない | プライベート・データを指定する |
BEGIN_PRIVATE | 必須ではない | プライベート・データの開始を指定する |
END_PRIVATE | 必須ではない | プライベート・データの終了を指定する |
NUM_VECTORS | 必須ではない | ベクタの数 省略値: 1 |
8.5.2.4 SYS$USER_CONFIG.DAT ファイルの再構築
REBUILD キーワードは,SYSMAN に対して,SYS$SYSTEM:SYS$USER_CONFIG.DAT と SYS$SYSTEM:SYS$CONFIG.DAT を再読み込みし,解析して,アダプタ・ブロックのそれぞれに付加された構成テーブルを再構築することを要求します。REBUILD コマンドは,バスのタイプに関係なく,常にすべての構成テーブルを再構築します。そして,次のように, AUTOCONFIGURE コマンドを再実行して,新しく定義された装置すべてに対してデバイス・ドライバをロードする必要があります。
$ MC SYSMAN IO REBUILD $ MC SYSMAN IO AUTOCONFIGURE |
ドライバは,特定の装置に対してロードされた後は,再ロードできないことに注意してください。
MC SYSMAN IO REBUILD/VERIFY コマンドを実行すると,
SYS$SYSTEM:SYS$USER_CONFIG.DAT ファイルと SYS$SYSTEM:CONFIG.DAT ファイルを SYSMAN が読み取り,処理することになりますが, OpenVMS 用の構成ファイルの再構築は行いません。エラーが検出されたときには,メッセージが表示されます。このコマンドは,開発者が,現在のシステムを変更せずに SYS$SYSTEM:SYS$USER_CONFIG.DAT への新しい変更をテストするときに使用できます。
8.5.3 ユーザ装置用にサポートされるバス
ファイル・ベースの自動構成は,PCI,ISA,EISA,TURBOchannel のバスに対して,ユーザが作成したデバイス・ドライバ用にサポートされています。この項では,構成に特化した追加情報を含んでいます。
8.5.3.1 ISA 装置の構成
ISA 装置は,バス・プロービング中に検出できる読み込み可能な装置 ID を提供しません。ユーザはコンソールでこの装置の存在を明示的に示し,なおかつコンソールでこの装置に対するリソース (IRQ,入出力ポートなど) を予約する必要があります。装置がコンソールに認識されると, OpenVMS は次にファイル・ベースの自動構成を使ってこの装置を自動構成します。
ISA 装置は ISA バスまたは EISA バスのどちらかで使用されます。システムに ISA バスがある場合,ISA 装置は ISACFG を使ってコンソールで構成されます。システムに EISA バスがある場合,ISA 装置は ECU を使って構成されます。両方のコンソール・ユーティリティで装置リソースを予約することができます。
8.5.3.1.1 ISA バス上の ISA 装置の構成
OpenVMS Alpha の以前のバージョンでは,ISA バス上の ISA 装置は, ISA を定義していた SYS$MANAGER:ISA_CONFIG.DAT ファイルにエントリを持つことと,コンソール・コマンド ISACFG を使用して IRQ などのシステム・リソースを予約することが必要でした。
OpenVMS Alpha バージョン 7.2 からは,ISA_CONFIG.DAT ファイルはサポートされなくなりました。詳細については, 第 8.5.4 項 を参照してください。 |
ISA 装置は,コンソールから実行される EISA Configuration ユーティリティ (ECU) を使用して手動で構成する必要があります。装置には,DOS フロッピーで提供される CFG ファイルがあるはずです。この CFG ファイルは,装置 ID である文字列 (最大 7 文字) を提供します。
CFG ファイル形式の詳細については,そのカードの製造業者に問い合わせるか, EISA バス仕様を参照してください。
ECU フロッピー (DOS 形式) には,新しい構成ファイル用のモデルとして使用できるサンプルの ISA CFG ファイル (ISA000.CFG) が含まれています。詳細については,『Writing OpenVMS Alpha Device Drivers in C』の「EISA Bus Support」の章を参照してください。
ECU が起動されると,装置はファイル・ベースの自動構成を使用して構成することができます。
ISA 装置は,OpenVMS Alpha の 7.1 よりも前のバージョンでは, EISA バス・システムに対して簡単には自動構成を行えません。これは,その ID が ECU データから OpenVMS バス構造にコピーされないためです。 |
SYS$MANAGER:ISA_CONFIG.DAT ファイルを使用した ISA 装置のサポートは, OpenVMS Alpha バージョン 7.2 からは行われなくなりました。このファイルを使用している場合は,コンソールからの ISACFG ユーティリティと,以下の項で説明するファイル・ベースの自動構成手法を使用する方法に変えてください。
表 8-2 には, ISA_CONFIG.DAT からのキーワードと,それに相当するファイル・ベース自動構成または ISACFG ユーティリティのリストを示しています。
ISA_CONFIG.DAT | ファイル・ベースの自動構成 | ISACFG |
---|---|---|
未使用 | ID | -handle |
NAME | NAME | |
DRIVER | DRIVER | |
IRQ | irq x | |
NODE | slot | |
DMA | dmachan x | |
PORT | iobase x | |
MEM | membase x | |
FLAGS | ビット 1 (未サポート) | |
ビット 2 (FLAG=NOVECTOR) | ||
USER_PARAM | PRIVATE_DATA |
ISA_CONFIG.DAT のエントリは, NODE キーワードで指定された番号を使用する ISA 装置用の内部データに照合されます。ただし,SYS$USER_CONFIG.DAT ファイルを使用して ISA 装置を構成するとき,装置を定義するブロックと,コンソールから ISACFG コマンドで入力されるデータを照合するために ID キーワードが使われます。 ID キーワードに示される値は, ISACFG-handle キーワードで指定される値と同じである必要があります。
ISA 装置には任意の識別文字列を使用できます。文字列は 8 文字以内にします。 ISACFG コマンドは,-handle 値を大文字に設定しないので,構成キーワード ID を使用して指定された値とこの値を照合させるには, 2 つの手法を使用できます。つまり,大文字への変換を行わないように引用符で ID 値を囲むこともできますし (-handle 値で使用した文字の照合),また,構成キーワード FLAGS=CASE_BLIND を使用すれば,大文字小文字を区別しない比較を行うこともできます。
例えば,ISACFG で次のものを使用した場合,
>>>isacfg -slot 3 -dev 0 -mk -enadev 1 -type 1 -handle MyDevice |
SYS$USER_CONFIG.DAT にある次のエントリと照合することができます。
DEVICE = "My Device" ID = MYDEVICE FLAGS = CASE_BLIND . . . END_DEVICE |
ISA_CONFIG.DAT で使用した各パラメータに対する変換の説明は,次のとおりです。
NAME = xx
SYS$USER_CONFIG.DAT で NAME キーワードを使用します。同じ値を使用し,xx は装置コードとします (装置コードは通常 2 文字です)。例: NAME = ER
DRIVER = driver_name
SYS$USER_CONFIG.DAT で DRIVER キーワードを使用します。ファイル・ベースの自動構成と同じ値を使用します。 driver_name は SYS$LOADABLE_IMAGES のドライバの名前です。例: DRIVER = SYS$ERDRIVER
IRQ = i
ISACFG ユーティリティで IRQx を使用します。4 つの IRQ,-IRQ0 から -IRQ3 までを表すことができます。 ISA_CONFIG.DAT で使ったのと同じ値を使用します。 IRQ は 0 から 15 までの値であり,これは装置が割り込みを報告するためにどの ISA IRQ を使用するかを指定します。例 :
この例は,装置に IRQ 10 と 5 を割り当てます。
>>>isacfg -slot 3 -dev 0 -mk -handle MYDEV -enadev 1 -etyp 1 -irq0 10 -irq1 5
NODE = n
ISACFG ユーティリティで -slot を使用します。スロット番号 (n) は装置が存在するスロットを表しているわけではありません。これは論理的な番号であり,物理的な番号ではありません。ただし,この番号は 1 から,マシンにあるスロットの最大番号までの間にする必要があります。スロット番号 0 はユーザには利用できません。例 :
>>>isacfg -slot 3 -dev 0 -mk -enadev 1 -etyp 1 -handle MYDEV -dmachan0 1 -irq0 10
この例は,スロット 3 で表される装置に値を割り当てます。このコマンドを実行するマシンには少なくとも 3 つのスロットが存在する必要があります。使用される論理スロットがどれであるかを確認するには,次のコマンドを入力します。
>>>isacfg -all
DMA = (j,k, ...)
ISACFG ユーティリティで -dmachanx を使用します。値 j,k などは 0 から 7 までの値であり,情報を中継するために装置が使用している DMA コントローラのチャネルを指定します。 ISACFG に対しては,j,k などと同じ値を使用しますが,それぞれには異なる DMA チャネルを指定します。キーワード -dmachan0 から -dmachan3 までを使って,4 つの DMA チャネルを指定できます。例 :
>>>isacfg -slot 3 -dev 0 -mk -enadev 1 -etyp 1 -handle MYDEV -irq0 10 -dmachan0 1 -dmachan1 3
この例は,2 つの dma チャネル,1 と 3 を装置に割り当てます。
PORT = (aa:b, cc:d, ... )
ISACFG ユーティリティで -iobasex を使用します。キーワード -iobase0 から -iobase5 までを使用して 6 つのポートを指定できます。長さフィールド b,d などには相当するものはありません。 ISACFG ユーティリティは,ドライバがポートの長さを知っていると想定しています。キーワード IOC$K_EISA_IO_PORT 付きで IOC$NODE_DATA ルーチンを呼び出して,戻されたロングワードの上位ワードの長さを取得しているドライバは,その上位ワードの調査をやめてください。 ISA_CONFIG.DAT では長さが返ってきましたが,その長さは常に 8 でした。例 :
>>>isacfg -slot 3 -dev 0 -mk -enadev 1 -etyp 1 -handle AAA321 -irq0 10 -iobase0 2F8
この例はポート 2F8 を装置に割り当てます。
MEM = (ee:f, gg:h, ...)
ISACFG キーワード -membasex を使用してメモリ・ベースを指定し,-memlenx でメモリ長を指定します。 ISA_CONFIG.DAT に対して使用したように,ee, gg などと f,h などに対して同じ値を使用してください。キーワード membase0 から membase2 までと,memlen0 から memlen2 までを使用して,3 つのメモリ領域を指定できます。例 :
>>>isacfg -slot 3 -dev 0 -mk -enadev 1 -etyp 1 -handle MYDEV -irq0 10 -membase0 80000 -memlen0 20
FLAGS = n
ISA_CONFIG.DAT の FLAGS フィールドには 2 つの意味のあるビットがありました。ビット 0 は SCSI アダプタで構成される装置を示しています。
ビット 1 は装置には必要な割り込みがないことを示しています。
ビット 0 が使用可能になることはありえなかったので,ビット 0 はファイル・ベースの自動構成では現在サポートされていません。ビット 1 は,ファイル・ベースの自動構成では, FLAGS=NOVECTOR 文で表すことができます。
USER_PARAM = テキスト
この値を表すには,ファイル・ベースの自動構成で PRIVATE_DATA キーワードを使用します。 USER_PARAM 値で引用符を使用した場合は,ドライバに引用符を引き続き渡すために BEGIN_PRIVATE と END_PRIVATE を使用する必要があります。 ISA 装置には,PRIVATE_DATA 値は USER_PARAM と同じ方法で取得できます (つまり,IOC$K_ISA_USER_PARAM キーワード付きで IOC$NODE_DATA ルーチンを使用すること)。ISACFG を使用しているときには,次に示すコマンドも知っている必要があります。
構成をその初期状態に戻すには,次のものを使用します。
>>>isacfg -init
変更を保存するには,次のものを使用します。
>>>init
エントリを削除するには,次のものを使用します。
>>>isacfg -slot 1 -dev 0 -rm
現在構成されている装置をすべて確認するには,次のものを使用します。
>>>isacfg -all
装置を変更するには,-mod を使用します。
>>>isacfg -slot 2 -dev 0 -mod (など)
次に示すキーワードは,ISA_CONFIG.DAT には相当するものがありません。
-enadev a_number 数値 0 (無効) と 1 (有効) を取る。これによって,リソース割り当て計算で装置を使用しないよう装置を無効にすることができる。 -etyp a_number このエントリ用のエントリ・タイプを定義する。OpenVMS は値 0 と 1 だけをサポートする。これは常に 1 と指定すべきである。次に示す値を取る。 0 エントリを削除する
1 単一オプション
2 埋め込み型マルチポート装置
3 マルチポート・オプション装置
以降の項では,これらの作業のうち,ターミナル特性の設定と仮想ターミナルの設定について説明します。
8.6.1 ターミナル特性の設定
ターミナル装置の特性とは,1 行に何文字表示するかなど,ターミナルの性質のことです。このターミナル装置の特性には,それぞれ省略時の値が設定されています。使用するターミナルに合わせて,ターミナルの特性の値を変更する必要があります。
ターミナル装置の特性を変更する場合は,次の形式に適切な修飾子を付けて,SET TERMINAL コマンドを使用します。
SET TERMINAL/[ 修飾子 ,...] [ 装置名 [:]] |
たとえば,次に示すコマンドは,ターミナルの行幅を 132 文字に, 1 ページの大きさを 60 行に設定するよう指示しています。 /NOBROADCAST は,ブロードキャスト・メッセージの受信を禁止する修飾子です。/PERMANENT 修飾子は,現在のターミナル・セッションの終了後もターミナル特性を保持するよう指示します。システムをブートするたびにこれらの特性を再設定するためには,次のコマンドをサイト別スタートアップ・コマンド・プロシージャに追加する必要があります。
$ SET TERMINAL/WIDTH=132/PAGE=60/NOBROADCAST/PERMANENT |
SET TERMINAL コマンドとその修飾子についての詳細は,『Compaq OpenVMS DCL ディクショナリ』を参照してください。
前へ | 次へ | 目次 | 索引 |