[16.0.0.4 and later]

エンジェル・チェック API

エンジェル・チェック API を使用して、特定の名前付きエンジェルまたはデフォルト・エンジェルが実行されているかどうかを確認します。

BBGZACHK、BGVT、および ECVT の各制御ブロックには、特定のエンジェルが実行されているかどうかを判別するために必要なポインター・ロケーションが含まれています。以下の表では、エンジェル・チェック API または制御ブロックのポインター・ロケーションをリストします。
表 1. エンジェル・チェック API または制御ブロックのポインター・ロケーション
API または制御ブロック ポインター・ロケーション
エンジェル・チェック API BBGZACHK 制御ブロックのオフセット 0x14
BBGZACHK 制御ブロック BGVT 制御ブロックのオフセット 0x2AC

ポインターが NULL の場合、エンジェルは開始されていません。

BGVT 制御ブロック。 ECVT 制御ブロックのオフセット 0x234。

ポインターが NULL の場合、エンジェルは開始されていません。ECVT 制御ブロックについて詳しくは、「MVS Data Areas」、Volume 1 (ABE- IAX) を参照してください。

環境

以下の表では、呼び出し元の要件を示します。
表 2. 環境要因とその要件
環境要因 要件
AMODE 64 ビット
ASC モード Primary
最小の許可 問題プログラム状態または監視プログラム状態
  • BBGZACHK 制御ブロックは、プログラム状況ワード (PSW) 0 から 15 の任意のストレージ・キーから使用可能です。

入力レジスター情報

以下の表では、エンジェル・チェック API の入力レジスターを示します。
表 3. 入力レジスターとその内容
登録 内容
1 ヌル終了エンジェル名ストリングのアドレス、または NULL。
  • 特定の名前付きエンジェルが実行されているかどうかを確認する場合、エンジェル・チェック API の呼び出し時に、レジスター 1 にヌル終了ストリングとしてエンジェルの名前へのポインターが必ず含まれるようにしてください。
  • デフォルト・エンジェルが実行されているかどうかを確認する場合、エンジェル・チェック API の呼び出し時に、レジスター 1 が必ずクリアされているようにしてください。
13 F4SA 形式の 144 バイトの保存域。
14 戻り先のアドレス。

出力レジスター情報

以下の表では、エンジェル・チェック API の出力レジスターを示します。
表 4. 出力レジスターとその内容
登録 内容
15 戻りコード 0 (指定されたエンジェルが実行されている場合)、または非ゼロ (それ以外の場合)

エンジェル・チェック API を呼び出すための BBGZAACK マクロ

エンジェル・チェック API の呼び出しを簡素化するために、${wlp.install.dir}/dev/api/ibm/zos/BBGZAACK にある BBGZAACK マクロを使用できます。

以下の表に、BBGZAACK マクロの構文を示します。
表 5. BBGZAACK マクロの構文
構文 説明
name name: シンボル。1 桁目から name を始めます。
ƀ 1 つ以上のブランクを BBGZAACK の前に置く。
BBGZAACK
ƀ 1 つ以上のブランクを BBGZAACK の後に続ける。
ANAME=angelname A タイプ・アドレスまたはレジスター (2) - (12)。

パラメーター

パラメーターの説明は、以下のとおりです。
ANAME
確認するエンジェルの名前のアドレスを指定します。このパラメーターの長さは、終了ヌルも含め、1 文字以上 55 文字以下でなければなりません。デフォルト・エンジェルを指定する場合は、単一のヌル文字を使用します。

戻りコードと理由コード

BBGZAACK マクロから制御が戻ると、汎用レジスター (GPR) 15 に戻りコードが入ります。戻りコード 0 は、指定されたエンジェルが検出され、アクティブであることを示します。非ゼロの戻りコードは、指定されたエンジェルが検出されなかったか、アクティブでないことを示します。

以下の例では、${wlp.install.dir}/dev/api/ibm/zos/BBGZAACK ファイルを MACLIB にコピーしたものとしています。

例 1

デフォルト・エンジェルがアクティブかどうかを確認します。
   USING PARMS,5         
   XC ANGLPARM,ANGLPARM Clear storage / null term
   BBGZAACK ANAME=ANGLPARM
   ST 15,ANGLRC Store return code
*
PARMS DSECT
ANGLPARM DS CL1
ANGLRC DS F

例 2

ANGEL01 という名前のエンジェルがアクティブかどうかを確認します。
         
   USING PARMS,5 XC   
   ANGLPARM,ANGLPARM Clear storage / null term
   MVC ANGLPARM(7),ANGLNAME Copy angel name
   BBGZAACK ANAME=ANGLPARM
   ST 15,ANGLRC Store return code
*
   LTORG
   ANGLNAME DC CL7'ANGEL01'
*
PARMS DSECT
ANGLPARM DS CL8
ANGLRC DS F

トピックのタイプを示すアイコン 参照トピック

ファイル名: rwlp_angel_check.html