CALL DSNALI ステートメント・パラメーター・リスト
CALL DSNALI ステートメントは、CAF を明示的に呼び出します。 プログラムに CALL DSNALI ステートメントを組み込む際には、戻りコード・パラメーターに先行するすべてのパラメーターを指定する必要があります。
CALL DSNALI文では、標準の z/OS® CALLパラメータリストを使用します。 レジスター 1 は、実際のパラメーターを指し示す フルワード・アドレスのリストを指します。 最後のアドレスは、高位ビットに 1 が入っていなければなりま せん。
CALL DSNALI ステートメントでは、ゼロまたはブランクをコーディングすることによって、戻りコード・パラメーターに先行するパラメーターを省略できません。 明示接続要求の場合は、これらのパラメーターにデフォルトはありません。 デフォルトは、暗黙接続の場合にのみ設定されます。 戻りコード・パラメーターが先頭にあるすべてのパラメーターは、オプションです。
- C言語の場合、CでCALL DSNALIステートメントをコーディングするときは、パラメーター自体ではなく、演算子(&)の
アドレス
を使用して、必要なすべてのパラメーターのアドレスを指定する必要があります。 例えば、CONNECT でstartecbパラメータを渡すには、4バイト整数のアドレス(&secb)を指定します。
char functn[13] = "CONNECT "; char ssid[5] = "DB2A"; int tecb = 0; int secb = 0; ptr ribptr; int retcode; int reascode; ptr eibptr; fnret = dsnali(&functn[0], &ssid[0], &tecb, &secb, &ribptr, &retcode, &reascode, NULL, &eibptr);
- アセンブラー言語以外の言語の場合、CALL DSNALI ステートメント内でそのパラメーターに対してゼロをコーディングします。 例えば、CONNECT 呼び出しを COBOL プログラムの中にコーディングし、戻りコード・パラメーターを除くすべてのパラメーターを指定するとします。 次に示すステートメントのように、ステートメントを記述できます。
CALL 'DSNALI' USING FUNCTN SSID TECB SECB RIBPTR BY CONTENT ZERO BY REFERENCE REASCODE SRDURA EIBPTR. - アセンブラー言語の場合、CALL DSNALI ステートメント内でそのパラメーターに対してコンマをコーディングします。 例えば、戻りコード・パラメーターを除くすべてのオプション・パラメーターを指定するには、次に示すようなステートメントを作成します。
CALL DSNALI,(FUNCTN,SSID,TERMECB,STARTECB,RIBPTR,,REASCODE,SRDURA,EIBPTR, GROUPOVERRIDE)
次の図に、CONNECT 機能のサンプルのパラメーター・リスト構造を示します。
- retcode、reascode、および srdura などのパラメーターを指定せずにパラメーター・リストを終了させ、戻りコードを
レジスター 15 に、理由コードをレジスター 0 に入れます。
このポイントでパラメーター・リストを終了させたのは、レジスター 15 に入っている 戻りコードとレジスター 0 に入っている理由コードを 必要とする CAF プログラムとの互換性を保つためです。
- パラメーター retcode の後でパラメーター・リストを終了し、
戻りコードをパラメーター・リストに、
理由コードをレジスター 0 に入れます。
このポイントでパラメーター・リストを終了すると、アプリケーション・プログラムが関連の理由コードを調べなくても、戻りコードに基づいて処置をとることができます。
- パラメーター reascode の後でパラメーター・リストを終了し、
戻りコードおよび理由コードをパラメーター・リストに入れます。
このポイントでパラメーター・リストを終了させたのは、個々のレジスターの内容を 調べることができない高水準言語をサポートするためです。
CAF アプリケーションをアセンブラー言語でコーディングする場合には、 理由コード・パラメーターを指定して、 戻りコード・パラメーターを省略できます。
- パラメーター srdura の後でパラメーター・
リストを終了します。
CAF アプリケーションをアセンブラー言語でコーディングする場合には、このパラメーターを 指定して、retcode および reascode パラメーター を省略できます。
- パラメーター eibptr の後で
パラメーター・リストを終了します。
CAF アプリケーションをアセンブラー言語でコーディングする場合には、 このパラメーターを指定して、retcode、reascode、 または srdura パラメーターを省略できます。
- パラメーター groupoverride の後で
パラメーター・リストを終了します。
CAF アプリケーションをアセンブラー言語でコーディングする場合には、 このパラメーターを指定して、retcode、reascode,srdura、または eibptr パラメーターを省略できます。
戻りコードをパラメーター・リストに入れるよう指定している場合でも、 戻りコードは、特殊な戻りコード処理をサポートする 高水準言語で使用できるように、レジスター 15 にも入れられます。