CBL_GET_PROGRAM_INFO

指定されたプログラムや、現在の呼び出しスタック内の特定プログラムに関する情報を返す。
制限事項:このルーチンの function 8 および 10 (引数の数を返す) はネイティブ COBOL のみでサポートされる。

構文:

call "CBL_GET_PROGRAM_INFO" using by value function
                            by reference   param-block
                            by reference   return-buf
                            by reference   return-buf-len
                            returning      status-code

パラメーター

function
呼び出しプロトタイプ (「説明の読み方」を参照):cblt-x4-comp5
ピクチャ:pic x(4) comp-5
param-block
cblt-prog-info-params として定義されている集団。次のものを含む。
 01 cblt-prog-info-params   typedef.
   03 cblte-gpi-size        cblt-x4-comp5.   *> pic x(4) comp-5.
   03 cblte-gpi-flags       cblt-x4-comp5.   *> pic x(4) comp-5.2.
   03 cblte-gpi-handle      cblt-pointer.    *> usage pointer.
   03 cblte-gpi-prog-id     cblt-pointer.    *> usage pointer.
   03 cblte-gpi-attrs       cblt-x4-comp5.   *> pic x(4) comp-5.
return-buf
呼び出しプロトタイプ (「説明の読み方」を参照):cblt-prog-info-arg-info
ピクチャ:pic x(n)
return-buf-len
呼び出しプロトタイプ (「説明の読み方」を参照):cblt-x4-comp5
ピクチャ:pic x(4) comp-5
status-code
説明の読み方」を参照。

入力パラメーター:

function
実行する処理を指定する値
0
注:この処理は COBOL プログラムのみでサポートされる。
現在のプログラムの状態情報を返す。このプログラムに関する詳細情報を得るには、cblte-gpi-flags パラメーターのビット 0 を設定して cblte-gpi-handle の返りを取得し、それを function 2 ~ 8 の入力値として使用する。cblte-gpi-handle に関連付けられている最初のプログラムが現在のプログラムである。

cblte-gpi-handle を使用する他の処理が完了したら、function を 3 に設定して再度 CBL_GET_PROGRAM_INFO を使用して、ハンドルの割り当てを解除する必要がある。

1 指定したプログラムの状態情報を返す。このプログラムに関する詳細情報を得るには、cblte-gpi-flags パラメーターのビット 0 を設定して cblte-gpi-handle の返りを取得し、それを function 2 ~ 8 の入力値として使用する。cblte-gpi-handle に関連付けられている最初のプログラムが指定したプログラムである。

cblte-gpi-handle を使用する他の処理が完了したら、function を 3 に設定して再度 CBL_GET_PROGRAM_INFO を使用して、ハンドルの割り当てを解除する必要がある。

2
注:この処理は COBOL プログラムのみでサポートされる。
cblte-gpi-handle に関連付けられているプログラムを呼び出したプログラムの状態情報を返す。この処理を行うには、事前に function 0 (または 1) で cblte-gpi-handle を取得する必要がある。cblte-gpi-handle に関連付けられているプログラムは、呼び出し元のプログラムに更新される。

cblte-gpi-handle を使用する他の処理が完了したら、function を 3 に設定して再度 CBL_GET_PROGRAM_INFO を使用して、ハンドルの割り当てを解除する必要がある。

3 取得済みの cblte-gpi-handle を破棄する。この処理を行うには、function 0 (または 1) で有効な cblte-gpi-handle が取得されている必要がある。この処理は cblte-gpi-handle を利用する処理の終了後に実行する。
4 cblte-gpi-handle に関連付けられているプログラムの最初のエントリ ポイントを返す。この処理を行うには、事前に function 0 (または 1) で cblte-gpi-handle を取得する必要がある。最初のエントリ ポイントを取得した後、function を 5 に設定して CBL_GET_PROGRAM_INFO を繰り返し呼び出せば、プログラム内の残りのエントリ ポイントも取得できる。すべてのエントリ ポイントの取得後、function を 6 に設定して CBL_GET_PROGRAM_INFO を呼び出すと、エントリ ポイントの取得処理が終了する。
5 cblte-gpi-handle に関連付けられているプログラムの次のエントリ ポイントを返す。この処理を行うには、事前に function 0 (または 1) で有効な cblte-gpi-handle を取得し、さらに function 4 で最初のエントリ ポイントを取得する必要がある。
6 エントリ ポイントの取得処理を終了する。この処理を行うには、事前に function 0 (または 1) で有効な cblte-gpi-handle を取得し、さらに function 4 で最初のエントリ ポイントを取得する必要がある。
7 cblte-gpi-handle に関連付けられているプログラムの完全なプログラム名を返す。この処理を行うには、function 0 (または 1) で有効な cblte-gpi-handle が取得されている必要がある。
8
注:この処理はネイティブ COBOL プログラムのみでサポートされる。
cblte-gpi-handle に関連付けられているプログラムの呼び出しに使用された引数の数を返す。この情報は、プログラムが現在の呼び出しスタック内に存在する場合にのみ返される。
9 予約済み。
10 cblte-gpi-handle に関連付けられているプログラムのパスとプログラム名、またはプログラム名のみを返す。cblte-gpi-flags のビット 5 が設定されているかどうかに依存する。
cblte-gpi-size
この項目を含むパラメーター ブロック全体のサイズ。32 ビット システムでは 20、64 ビット システムでは 28 に設定する。
cblte-gpi-flags
返される情報を示す 32 ビットのフラグ。各ビットの内容は次のとおり。
ビット 0
function が 0 または 1 の場合に、cblte-gpi-handle を返すかどうかを指定する。function がそれ以外の値であれば、このビットは無視される。
0 cblte-gpi-handle を返さない。
1 cblte-gpi-handle を返す。
ビット 1
function が 0 または 2 の場合に、プログラムの状態情報の一部として、プログラムのベース名を name-buf で返すかどうかを指定する。
0 プログラムのベース名を返さない。
1 プログラムのベース名を返す。
ビット 2
name-buf で入力するプログラムのベース名や、同パラメーターで返されるベース名 (または完全なプログラム名) の終端を示す文字として、NULL と空白文字のどちらを使用するかを指定する。
0 空白文字
1 NULL
ビット 3
function が 0、1、または 2 の場合に、cblte-gpi-attr でプログラムの属性を返すかどうかを指定する。
0 cblte-gpi-attr でプログラムの属性を返さない。
1 cblte-gpi-attr でプログラムの属性を返す。
ビット 4
function が 2 の場合に、すべてのプログラムの情報を返すかどうかを指定する。
0 プログラムの情報を返さない。
1 プログラムの情報を返す。
ビット 5
function が 10 の場合に、cblte-gpi-handle に関連付けられているロード済みモジュールのフル パスを返すかどうかを指定する。
0 フル パスを返す。
1 プログラム名のみを返す。
ビット 6-31
予備。値は常に 0。
cblte-gpi-handle
function が 0 または 1 の場合に生成されるハンドル
(function が 2 ~ 10 の場合に指定する必要がある)。
return-buf
function の値によって異なる。
0 情報が必要なプログラムのベース名。
8 次のように定義されている集団。
 01 cblt-prog-info-params   typedef.
     05 cblte-gpiai-size        pic x(4) comp-5 value zeroes.
     05 cblte-gpiai-argc        pic x(4) comp-5 value zeroes.
     05 cblte-gpiai-reserved1   pointer value null.
     05 cblte-gpiai-reserved2   pointer value null.

cblte-gpiai-size は、32 ビット システムでは 16、64 ビット システムでは 24 に設定する必要がある。

return-buf-len
return-buf の長さ。この値が返される情報のサイズより小さいと、ルーチンは失敗する。

出力パラメーター:

cblte-gpi-handle
function が 0 または 1 の場合に返されるハンドル。このハンドルは、function にその他の値を設定した呼び出しで使用する。
cblte-gpi-prog-id
cblte-gpi-handle に関連付けられているプログラムを示す一意の識別子。
cblte-gpi-attr
cblte-gpi-handle に関連付けられているプログラムの属性。各ビットの値と意味は次のとおり。
ビット 0
0 プログラムが AMODE"24" コンパイラ指令を使ってコンパイルされていない。
1 プログラムが AMODE"24" コンパイラ指令を使ってコンパイルされている。
ビット 1
0 プログラムが AMODE"31" コンパイラ指令を使ってコンパイルされていない。
1 プログラムが AMODE"31" コンパイラ指令を使ってコンパイルされている。
ビット 2
0 プログラムが CHARSET(ASCII) コンパイラ指令を使ってコンパイルされている。
1 プログラムが CHARSET(EBCDIC) コンパイラ指令を使ってコンパイルされている。
ビット 3
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムが ANS85 コンパイラ指令を使ってコンパイルされていない。
1 プログラムが ANS85 コンパイラ指令を使ってコンパイルされている。
ビット 4
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムが VSC2 コンパイラ指令を使ってコンパイルされていない。
1 プログラムが VSC2 コンパイラ指令を使ってコンパイルされている (このコンパイラ指令はネイティブ コードでのみサポートされる)。
ビット 5
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムが OSVS コンパイラ指令を使ってコンパイルされていない。
1 プログラムが OSVS コンパイラ指令を使ってコンパイルされている (このコンパイラ指令はネイティブ コードでのみサポートされる)。
ビット 6
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムが DATA"24" コンパイラ指令を使ってコンパイルされていない。
1 プログラムが DATA"24" コンパイラ指令を使ってコンパイルされている。
ビット 7
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムが DATA-CONTEXT コンパイラ指令を使ってコンパイルされていない。
1 プログラムが DATA-CONTEXT コンパイラ指令を使ってコンパイルされている。
ビット 8-10
000 COBOL または不明な言語。
001 PL/I。
010 ~ 111 予約済み。
ビット 11
注:このビットは PL/I プログラムにのみ適用される。
0 リトルエンディアン。
1 ビッグエンディアン。
ビット 12-24
予備。値は常に 0。
ビット 25
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムがアプリケーション コントローラーではない。
1 プログラムがアプリケーション コントローラーである。
ビット 26
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムがシステム プログラムではない。
1 プログラムがシステム プログラムである。
ビット 27
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムが .390 アセンブラー プログラムではない。
1 プログラムが .390 アセンブラー プログラムである。
ビット 28
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムがサブシステムのメンバーではない。
1 プログラムがサブシステムのメンバーである。
ビット 29
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムが現在の呼び出しスタック内に存在する。
1 プログラムが現在の呼び出しスタック内に存在しない。
ビット 30
注:このビットは COBOL プログラムにのみ適用される。
0 プログラムはキャンセルされていない。
1 プログラムはキャンセルされている。
ビット 31
0 COBOL プログラムである。
1 非 COBOL プログラムである。
return-buf
function の値によって異なる。
0、2 要求されたベース名。
4、5 要求されたエントリ ポイント名。
7 要求された完全なプログラム名。
8 要求された呼び出しパラメーターの情報。プログラムの呼び出しに使用された引数の数が cblte-gpiai-argc に含まれる。

cblte-gpiai-reserved1 および cblte-gpiai-reserved2 は NULL のまま。

10 cblte-gpi-handle に関連付けられているプログラムのパスとプログラム名、またはプログラム名のみ。
return-buf-len
name-buf で返された名前の長さ (status-code が 1013 の場合には、必要なバッファー サイズが格納される)。
status-code
処理状態を示すコード。
0 成功。
500 情報の終了。関連付けされているプログラムに呼び出し元が存在しない (function が 2 の場合)、または次のエントリ ポイントが見つからない (function が 5 の場合) 場合に返される。
1000 メモリ割り当てエラー
1001 cblte-gpi-handle の入力が無効。
1006 操作またはハンドルが無効。cblte-gpi-handle に関連付けられているプログラムが呼び出しスタックに存在しない場合に返される (function が 8 の場合)。
1009 パラメーターが無効。
1011 プログラムまたはエントリ名が見つからない。
1013 返される情報に比べ、バッファーが小さすぎる。