日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V8.3
ライブラリ

タイトルページ
目次
まえがき
第 1 章:はじめに
第 2 章:仮想アドレス空間の概要
第 3 章:システム・サービスの 64 ビット・アドレッシングのサポート
第 4 章:メモリ管理 VLM 機能
第 5 章:64 ビット・アドレッシングを対象とする RMS インタフェースの強化
第 6 章:ファイル・システムの 64 ビット・アドレッシングのサポート
第 7 章:OpenVMS Alpha デバイスの 64 ビット・アドレッシングのサポート
第 8 章:OpenVMS Alpha 64 ビット API ガイドライン
第 9 章:64 ビット・アドレッシングをサポートする OpenVMS Alpha ツールおよびユーティリティ
第 10 章:言語およびポインタの 64 ビット・アドレッシング・サポート
第 11 章:DEC C RTL の 64 ビット・アドレッシング・サポート
付録 A :64 ビット・アドレッシングのための C マクロ
付録 B :64 ビット・アドレッシングのための MACRO-32 マクロ
付録 C :64 ビット・プログラム例
付録 D :VLM プログラム例
索引
PDF
OpenVMS ホーム
Open VMS Alpha オペレーティング・システム | HPE 日本(日本ヒューレット・パッカード株式会社)

Open VMS Alpha オペレーティング・システム
64 ビット・アドレッシングおよび VLM 機能説明書


目次 索引

第 7 章
OpenVMS Alpha デバイスの 64 ビット・アドレッシングのサポート

RMS サービス,$QIO システム・サービス,および OpenVMS Alpha システムが提供するほとんどのデバイス・ドライバによる入出力操作は, P2 または S2 空間と直接行われます。

本章では $QIO システム・サービスが 64 ビット・アドレスをサポートする方法について説明します。また 64 ビット・アドレスをサポートする/しない OpenVMS Alpha デバイス・ドライバ, 64 ビット・アドレスをサポートする OpenVMS Alpha ディスクおよびテープ・ドライバの一覧を示します。

ユーザが作成したデバイス・ドライバは,64 ビット・アドレスをサポートするよう修正することができます。詳細は『OpenVMS Alpha Guide to Upgrading Privileged-Code Applications』を参照してください。すべての関数内で 64 ビット・バッファ・アドレスをサポートするよう修正したデバイス・ドライバの例については, SYS$EXAMPLES ディレクトリの LRDRIVER デバイス・ドライバを参照してください。

重要

OpenVMS Alpha バージョン 7.0 は, OpenMVS Alpha 特権インタフェースおよびデータ構造が大幅に変更されています。そのため V7.0 より前のバージョンの OpenVMS Alpha で使用していたユーザ作成の特権コード・アプリケーション,およびデバイス・ドライバを OpenVMS Alpha V7.0 以降で正しく実行するためには,再コンパイルおよび再リンクしなければなりません。

必要な変更を V7.0 で行った場合は,ユーザが作成した特権コード・アプリケーションを再コンパイルおよび再リンクする必要はありません。

再コンパイルおよび再リンクについての詳細は,『OpenVMS Alpha Guide to Upgrading Privileged-Code Applications』または『OpenVMS V 7.2 リリース・ノート [翻訳版]』を参照してください。



$QIO および $QIOW システム・サービスは,次の引数を取ることができます。


$QIO[W] efn,chan,func,iosb,astadr,astprm,p1,p2,p3,p4,p5,p6 

これらのサービスは, ( 第 3 章 で説明されている) 64 ビット・フレンドリ・インタフェースを持ち, 64 ビット・アドレスをサポートすることができます。

64 ビット・アドレスのサポートを目的として, $QIO および $QIOW システム・サービス引数のデータ型に加えられた変更を 表 7-1 に示します。

表 7-1 $QIO [W] 引数の変更
引数 以前の型 新しい型 説明
efn 符号なし
ロングワード
- イベント・フラグ番号。変更なし。
chan 符号なしワード - チャネル番号。変更なし。
func 符号なし
ロングワード
- I/O 関数コード。変更なし。
iosb 32 ビット・
ポインタ 1
64 ビット・
ポインタ
クォドワード I/O 状態ブロック (IOSB) へのポインタ。 IOSB 形式は変更なし。
astadr 32 ビット・
ポインタ 1
64 ビット・
ポインタ
呼び出し者の AST ルーチンのプロシージャ値。Alpha システムでは,プロシージャ値はプロシージャ・ディスクリプタへのポインタである。
astprm 符号なし
ロングワード 2
クォドワード AST ルーチンの引数値。
P1 ロングワード 2 クォドワード デバイスに依存する引数。P1 はしばしばバッファ・アドレスである。
P2 ロングワード 2 クォドワード デバイスに依存する引数。下位 32 ビットだけが,P2 をバッファ・サイズとして使用するシステム提供の FDT ルーチンによって使用される。
P3 ロングワード 2 クォドワード デバイスに依存する引数。
P4 ロングワード 2 クォドワード デバイスに依存する引数。
P5 ロングワード 2 クォドワード デバイスに依存する引数。
P6 ロングワード 2 クォドワード デバイスに依存する引数。場合によって P6 は,診断バッファのアドレスを含むために使用される。

132 ビット・ポインタは,『OpenVMS Calling Standard』の要求に従い, 64 ビットに符号拡張されていた。
232 ビット・ロングワード値は,『OpenVMS Calling Standard』の要求に従い, 64 ビットに符号拡張されていた。

通常,$QIO P1 引数はバッファ・アドレスを指定します。読み込み関数および書き込み関数をサポートする,システム提供の上位レベル FDT ルーチンはすべて,この規則を使用します。 P1 引数によって,$QIO サービスの呼び出し者が, 64 ビット・サポートを要求するかどうかが決定されます。 $QIO システム・サービスが 64 ビットの I/O 要求を拒否すると,次に示す回復不可能なシステム・エラー状態が返ります。


SS$_NOT64DEVFUNC  64-bit address not supported by device for this function 

この回復不可能な状態値は,次の環境のもとで返されます。

  • 呼び出し者が,デバイスに依存する P1 引数に 64 ビット仮想アドレスを指定したが,デバイス・ドライバが,要求された I/O 関数で 64 ビット・アドレスをサポートしない。

  • 呼び出し者が,診断バッファに対して 64 ビット・アドレスを指定したが,デバイス・ドライバが,診断バッファで 64 ビット・アドレスをサポートしない。

  • 64 ビット・バッファ・アドレスが P2 〜 P6 引数を使用して渡され,ドライバが,要求された I/O 関数で 64 ビット・アドレスをサポートしない場合,デバイス・ドライバによってはこの状態値を返すことがある。

$QIO,$QIOW,および $SYNCH システム・サービスについての詳細は,『OpenVMS System Services Reference Manual: GETUTC--Z』を参照してください。

7.2 64 ビット・アドレスをサポートする OpenVMS ドライバ

デバイス・ドライバは,64 ビット・アドレスのサポートを I/O 関数コードごとに宣言します。ディスク・デバイス・ドライバおよびテープ・デバイス・ドライバは,仮想,論理,および物理的な読み込み関数と書き込み関数において,ディスク・デバイスとテープ・デバイスを対象とするデータ転送で 64 ビット・アドレスをサポートします。たとえば,OpenVMS SCSI ディスク・クラス・ドライバの SYS$DKDRIVER は, IO$_READVBLK 関数および IO$_WRITEVBLK 関数において 64 ビット・アドレスをサポートしますが,IO$_AUDIO 関数ではサポートしません。

64 ビット・アドレスをサポートする OpenVMS Alpha デバイス・ドライバには,次のドライバが含まれます。

  • すべてのディスクおよびテープ・ドライバ

  • ディスクおよびテープ・ドライバの下のすべてのポート・ドライバ

  • LAN ドライバ

  • メールボックス・ドライバ

  • ISA パラレル・ポート・ドライバ (LRDRIVER.C)

少なくとも 1 つの関数で 64 ビット・アドレスをサポートする OpenVMS Alpha デバイス・ドライバを 表 7-2 に示します。

表 7-2 64 ビット・アドレスをサポートするドライバ
ドライバ 説明
SYS$DADDRIVER ローカル・エリア・ディスク・クライアント・ディスク・ドライバ
SYS$DKDRIVER SCSI ディスク・クラス・ドライバ
SYS$DUDRIVER DSA ディスク・クラス・ドライバ
SYS$DVDRIVER Intel 83077AA のフロッピー・ディスク
SYS$ECDRIVER LAN driver for PMAI
SYS$ERDRIVER LAN driver for DE422
SYS$ESDRIVER LAN driver for DESUA
SYS$EWDRIVER TULIP LAN, PCI
SYS$EXDRIVER DEMNA LAN, XMI
SYS$EZDRIVER SGEC/INEC/TGEC LAN
SYS$FADRIVER FDDI for Futurebus
SYS$FCDRIVER DEFZA, DEFTA LAN, TC
SYS$FRDRIVER DEFEA LAN, EISA
SYS$FXDRIVER DEMFA LAN, XMI
SYS$GKDRIVER SCSI 汎用クラス・ドライバ
SYS$HCDRIVER OTTO クラス ATM
SYS$ICDRIVER TMS380 LAN, TC
SYS$IRDRIVER TMS380 EISA トークン・リング
SYS$LADDRIVER Local Area Disk
SYS$LASTDRIVER Local Area System Transport
SYS$LRDRIVER VL82C106 parallel printer driver
SYS$MADDRIVER ローカル・エリア・クライアント・テープ
MBDRIVER メールボックス・ドライバ
SYS$MKDRIVER SCSI テープ・クラス・ドライバ
NLDRIVER ヌル・デバイス・ドライバ
SYS$PADRIVER SHAC CI および DSSI ポート・ドライバ
SYS$PEDRIVER NI SCS ポート・ドライバ
SYS$PIDRIVER NCR 53C710 DSSI ポート
SYS$PKCDRIVER SCSI NCR 53C94 ポート
SYS$PKEDRIVER NCR 53C810 SCSI ポート
SYS$PKJDRIVER ADAPTEC 1742A SCSI ポート
SYS$PKSDRIVER SIMport TC-SCSI ポート
SYS$PKTDRIVER NCR 53C710 SCSI ポート
SYS$PKZDRIVER XZA SCSI ポート
SYS$PNDRIVER NPORT SCS ポート
SYS$PUDRIVER CI UDA ポート・ドライバ
SYS$SHDRIVER ボリューム・シャドウィング
SYS$TUDRIVER MSCP/DSA テープ・クラス
SYS$WPDRIVER ウォッチポイント・ドライバ

OpenVMS Alpha バージョン 7.0 で 64 ビット・アドレスをサポートしない OpenVMS Alpha デバイス・ドライバを 表 7-3 に示します。

表 7-3 32 ビット・アドレスに制限されるドライバ
ドライバ 説明
SYS$CTDRIVER CTERM ドライバ
SYS$FBDRIVER ターミナル・フォールバック・ドライバ
SYS$FTDRIVER 擬似ターミナル・ドライバ
SYS$FYDRIVER DUP DSA プロトコル・クラス・ドライバ
SYS$GQADRIVER QVISION ドライバ
SYS$GTADRIVER DECwindows TX driver for Flamingo
SYS$GXADRIVER Flamingo CXTurbo (aka SFB, aka HX) ドライバ
SYS$GYADRIVER SFB+ aka HX+, aka FFB ドライバ
SYS$GYBDRIVER PCI バス上の TGA グラフィクス用ドライバ
SYS$IEDRIVER DECwindows 拡張
SYS$IKBDRIVER DECwindows PCXAL キーボード
SYS$IKDRIVER DECwindows LKxxx キーボード
SYS$IMBDRIVER DECwindows PCXAS (PS2) マウス
SYS$IMDRIVER DECwindows VSxxx マウス
SYS$INDRIVER DECwindows 入力ドライバ
SYS$LTDRIVER LAT ターミナル・ドライバ
NDDRIVER DECnet Phase IV DLE (MOP サポート)
NETDRIVER DECnet Phase IV
SYS$RTTDRIVER リモート DECnet ターミナル・ドライバ
SYS$SODRIVER AMD79C30A Audio/ISDN ドライバ
SYS$TTDRIVER ターミナル・クラス・ドライバ
DECW$XTDRIVER X ターミナル・クラス・ドライバ
SYS$YRDRIVER Z85C30 SCC ターミナル・ポート・ドライバ
SYS$YSDRIVER PC87312 ターミナル・ポート・ドライバ

32 ビット・バッファ・アドレスに制限されるドライバについて,特に次の点に注意してください。

  • ターミナル・ドライバは 64 ビット・アドレスをサポートしない。

  • DECwindows Motif ソフトウェアで使用されるドライバは 64 ビット・アドレスをサポートしない。

  • DECnet Phase IV ドライバは 64 ビット・アドレスをサポートしない。



7.3 64 ビット・アドレスをサポートする機能コード

64 ビット・アドレスをサポートする OpenVMS Alpha I/O 機能コードを 表 7-4 に示します。

表 7-4 64 ビット・アドレスが使用できる機能コード
ドライバのタイプ 機能コード 64 ビット・アドレス
ディスク    
  IO$_READLBLK P1
  IO$_READPBLK P1
  IO$_READVBLK P1
  IO$_WRITECHECK P1
  IO$_WRITELBLK P1
  IO$_WRITEPBLK P1
  IO$_WRITEVBLK P1
磁気テープ    
  IO$_READLBLK P1
  IO$_READPBLK P1
  IO$_READVBLK P1
  IO$_WRITELBLK P1
  IO$_WRITEOF P1
  IO$_WRITEPBLK P1
  IO$_WRITEVBLK P1
メールボックス    
  IO$_READLBLK P1
  IO$_READPBLK P1
  IO$_READVBLK P1
  IO$_WRITELBLK P1
  IO$_WRITEPBLK P1
  IO$_WRITEVBLK P1
Local Area Network (LAN)    
  IO$_READLBLK P1,P5
  IO$_READPBLK P1,P5
  IO$_READVBLK P1,P5
  IO$_WRITELBLK P1,P4,P5
  IO$_WRITEPBLK P1,P4,P5
  IO$_WRITEVBLK P1,P4,P5


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項