HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
LBR$LOOKUP_TYPE ルーチンは,インデックスで特定のモジュール (RFA) のキーを検索し,そのモジュールのキーの型を返します。
LBR$LOOKUP_TYPE library_index, key_name, txtrfa, ret_types
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。key_name
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
引数 key_name は,次の引数特性を持つキーを指す文字列記述子のアドレスです。
引数特性 エントリ OpenVMS 用法 char_string データ型 文字列 アクセス 読み取り専用 受け渡し方 記述子渡し
txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
モジュールのライブラリ・モジュール・ヘッダのレコード・ファイル・アドレス (RFA)。引数 txtrfa は,モジュール・ヘッダの RFA を指定している 2 つのロングワードからなる配列のアドレスです。ret_types
OpenVMS 用法: mask_longword データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 参照渡し
指定したモジュール (txtrfa) に対して見つかったシンボルの型を受け取るためのロングワードのアドレス。返される値のビットの意味は,次のとおりです。LBR$M_SYM_NGG = 1
LBR$M_SYM_UXWK = 2
LBR$M_SYM_GG = 4
LBR$M_SYM_GUXWK = 8
このルーチンは,インデックスで特定のモジュール (RFA) のキーを検索し,そのモジュールのキーがあれば,その型を返します。キーが見つからない場合には,LBR$_KEYNOTFND を返します。
LBR$MAP_MODULE ルーチンは,モジュールをプロセスの P2 空間にマップします。
LBR$MAP_MODULE library_index, ret_va_addr, ret_mod_len, txtrfa
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。ret_va_addr
OpenVMS 用法: address データ型: クォドワード・アドレス アクセス: 書き込み専用 受け渡し方: 32 ビットまたは 64 ビットの参照渡し
自然にアラインされたクォドワードの 32 ビットまたは 64 ビットの仮想アドレス。このルーチンは,ライブラリ・モジュールをマップした仮想アドレスをこのクォドワードに返します。ret_mod_len
OpenVMS 用法: byte_count データ型: クォドワード (符号なし) アクセス: 書き込み専用 受け渡し方: 32 ビットまたは 64 ビットの参照渡し
自然にアラインされたクォドワードのアドレス。ライブラリ・ルーチンはモジュールの長さをこのクォドワードに返します。txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
モジュールのライブラリ・モジュール・ヘッダのレコード・ファイル・アドレス (RFA)。引数 txtrfa は,モジュール・ヘッダの RFA を指定している 2 つのロングワードからなる配列のアドレスです。
このルーチンは,指定された txtrfa を使って,プロセスの P2 メモリ空間にモジュールをマップし,モジュールをマップした仮想アドレスとモジュール・サイズを返します。他の LBR サービスが RMS サービスを使用するのとは異なり, LBR$MAP_MODULE はシステム・サービスも使用します。そのため,エラーで戻る場合の第 2 のステータスが LBR$$GL_SUBSTS に置かれます。エラーが返されたときは,これを使用してステータスの詳細を調べてください。
LBR$PUT_MODULE ルーチンは,モジュールのレコード・ファイル・アドレス (RFA) も含めてモジュール全体を,メモリ空間から現在のライブラリへ書き込みます。
LBR$PUT_MODULE library_index, mod_addr, mod_len, txtrfa
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・サービスから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。mod_addr
OpenVMS 用法: address データ型: クォドワード・アドレス アクセス: 読み取り専用 受け渡し方: 32 ビットまたは 64 ビットの参照渡し
メモリにマップされているモジュールの 64 ビット・アドレスを,ライブラリ・サービスが取得するアドレス。引数 mod_addr は,自然にアラインされたクォドワードの 32 ビットまたは 64 ビットの仮想アドレスです。このクォドワードにはライブラリへ書き込むモジュールの仮想アドレスが格納されています。mod_len
OpenVMS 用法: byte count データ型: クォドワード (符号なし) アクセス: 読み取り専用 受け渡し方: 32 ビットまたは 64 ビットの参照渡し
ライブラリ・サービスによってライブラリへ書き込まれるモジュールの長さが格納された,自然にアラインされたクォドワードの 64 ビット仮想アドレス。txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 参照渡し
モジュールのライブラリ・モジュール・ヘッダのレコード・ファイル・アドレス (RFA)。引数 txtrfa は,新たに作成されたモジュール・ヘッダの RFA を受け取る 2 つのロングワードからなる配列のアドレスです。
LBR$PUT_MODULE ルーチンは,モジュールのレコード・ファイル・アドレス (RFA) も含めてモジュール全体を,メモリ空間から現在のライブラリへ書き込みます。モジュール全体を現在のライブラリに書き込む際に, LBR$PUT_END を使用する必要はありません。
LBR$UNMAP_MODULE ルーチンは,プロセスの P2 空間からモジュールをアンマップします。
LBR$UNMAP_MODULE library_index, txtrfa
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
モジュールのライブラリ・モジュール・ヘッダのレコード・ファイル・アドレス (RFA)。引数 txtrfa は,モジュール・ヘッダの RFA を指定している 2 つのロングワードからなる配列のアドレスです。
txtrfa 内のレコード・ファイル・アドレスを使って,プロセスの P2 メモリ空間からモジュールをアンマップします。これにより,モジュールをマップするために使われていたリソースは解放されます。他の LBR サービスが RMS サービスを使用するのとは異なり, LBR$UNMAP_MODULE はシステム・サービスも使用します。そのため,エラーで戻る場合の第 2 のステータスが LBR$GL_SUBSTS に置かれます。エラーが返されたときは,これを使用してステータスの詳細を調べてください。
4.8.5 ELF オブジェクト・ライブラリ用の拡張ライブラリ (LBR) ルーチン
OpenVMS I64 システムでは,以降の項で説明するライブラリ・ルーチンが変更されています。 ELF グループ・シンボルと UNIX スタイルの弱いシンボルの定義の追加によって追加情報を渡す必要が生じたために,ライブラリ・ルーチンへ追加パラメータを渡すように機能が拡張されました。ライブラリ・ルーチンへの機能拡張は, ELF オブジェクト・ライブラリと ELF 共有イメージ・ライブラリにだけ影響します。
この項では,以下のライブラリ・ルーチンをリストします。
このリストに入っていないライブラリ・ルーチンは,OpenVMS I64 システムと OpenVMS Alpha システムの間で,変更されていません。説明は,『OpenVMS Utility Routines Manual』にあります。
LBR$DELETE_DATA ルーチンは,ライブラリからモジュール・データを削除します。
LBR$DELETE_DATA library_index, txtrfa, [flags]
OpenVMS 用法: cond_value データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 値渡し
ロングワードの状態値。大部分のユーティリティ・ルーチンは,状態値を返します。このルーチンから戻される状態値は,「戻される状態値」の項に示します。
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
削除したいモジュールのモジュール・ヘッダのレコード・ファイル・アドレス (RFA)。引数 txtrfa は,RFA が格納された 2 つのロングワードからなる配列のアドレスです。モジュール・ヘッダの RFA は,LBR$LOOKUP_KEY または LBR$PUT_RECORD を呼び出すことで取得できます。flags
OpenVMS 用法: mask_longword データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 値渡し
フラグの内容は無視されます。フラグを指定する目的は,アプリケーションが,ELF オブジェクト・ライブラリと ELF 共有イメージ・ライブラリの新しいインデックス構造体を認識していることを,このルーチンに知らせることです。
ライブラリ・モジュールを削除する場合には,最初に LBR$DELETE_KEY を呼び出して,そのモジュールを指しているすべてのキーを削除する必要があります。どのライブラリのインデックス・キーもそのモジュール・ヘッダを指していない場合には,LBR$DELETE_DATA はモジュール・ヘッダと,関連付けられているデータ・レコードを削除します。それ以外の場合には,このルーチンは LBR$_STILLKEYS エラーを返します。他のライブラリ・ルーチンが,データを含まないデータ・ブロックを再利用する可能性があることに注意してください。
LBR$_ILLCTL 指定したライブラリ制御インデックスは無効。 LBR$_INVRFA 指定した RFA は無効。 LBR$_LIBNOTOPN 指定したライブラリは,オープンされていない。 LBR$_STILLKEYS インデックス内のキーが,モジュール・ヘッダを指したままである。この場合には,指定したモジュールは削除されません。
LBR$DELETE_KEY ルーチンは,現在のインデックスからキーを削除します。
LBR$DELETE_KEY library_index, key_name [, txtrfa] [, flags]
OpenVMS 用法: cond_value データ型: ロングワード (符号なし) アクセス: 書き込み専用 受け渡し方: 値渡し
ロングワードの状態値。大部分のユーティリティ・ルーチンは,状態値を返します。このルーチンから戻される状態値は,「戻される状態値」の項に示します。
library_index
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
LBR$INI_CONTROL ライブラリ・ルーチンから返されたライブラリ制御インデックス。引数 library_index は,インデックスが格納されたロングワードのアドレスです。key_name
OpenVMS 用法: longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
ライブラリ・インデックスから削除するキー。バイナリ・キーを持つライブラリの場合には,引数 key_name はキー番号が格納された符号なしロングワードのアドレスです。ASCII キーを持つライブラリの場合には,引数 key_name は,次の引数特性を持つキーを指す文字列記述子のアドレスです。
引数特性 エントリ OpenVMS 用法 char_string データ型 文字列 アクセス 読み取り専用 受け渡し方 記述子渡し
txtrfa
OpenVMS 用法: vector_longword_unsigned データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 参照渡し
この引数を指定して,なおかつ 引数 flags を指定しなかった場合は,このルーチンは,指定した txtrfa のすべての型のキーを検索し,そのエントリを削除します。flags
OpenVMS 用法: mask_longword データ型: ロングワード (符号なし) アクセス: 読み取り専用 受け渡し方: 値渡し
この引数を指定した場合には,特定の型のキー,またはすべての型のキーが削除されます。フラグ・ビットの意味は,次のとおりです。
フラグ・ビット 意味 LBR$M_SYM_WEAK = 0x1 UNIX スタイルの弱いシンボル属性 LBR$M_SYM_GROUP = 0x2 グループ・シンボル属性 LBR$M_SYM_ALL = 0x80000000 すべてのシンボル
txtrfa を指定しない場合,または 0 を指定した場合には, flags で示される型が削除されます。 txtrfa に 0 以外の値を指定すると,txtrfa で指定した型のエントリが削除されます。 1 つの型,またはすべての型を指定することに注意してください。
LBR$DELETE_KEY は,現在のインデックス内で,key_name で指定されたキーを検索し,そのキーを削除します。ライブラリ・モジュールを削除する場合には,最初に LBR$DELETE_KEY を使って,そのモジュールを指しているすべてのキーを削除し,その後で LBR$DELETE_DATA を使って,モジュール・ヘッダと,関連付けられているデータを削除する必要があります。 LBR$SEARCH または LBR$GET_INDEX で指定したユーザ定義ルーチンの中から LBR$DELETE_KEY を呼び出すことはできません。
LBR$_ILLCTL 指定したライブラリ制御インデックスは無効。 LBR$_KEYNOTFND 指定したキーが見つからない。 LBR$_LIBNOTOPN 指定したライブラリは,オープンされていない。 LBR$_UPDIRTRAV LBR$SEARCH または LBR$GET_INDEX で指定したユーザ定義ルーチン内でインデックスをアップデートすることはできない。
| 前へ | 次へ | 目次 | 索引 |