CALL DSNALI statement parameter list
The CALL DSNALI statement explicitly invokes CAF. When you include CALL DSNALI statements in your program, you must specify all parameters that come before the return code parameter.
For CALL DSNALI statements, use a standard z/OS® CALL parameter list. Register 1 points to a list of fullword addresses that point to the actual parameters. The last address must contain a 1 in the high-order bit.
In CALL DSNALI statements, you cannot omit any of parameters that come before the return code parameter by coding zeros or blanks. No defaults exist for those parameters for explicit connection requests. Defaults are provided for only implicit connections. All parameters starting with the return code parameter are optional.
- For C-language, when you code CALL DSNALI statements
in C, you need to specify the address of every required parameter,
using the "address of" operator (&), and not the parameter
itself. For example, to pass the startecb parameter
on CONNECT, specify the address of the 4-byte integer (&secb).
functn char[13] = "CONNECT "; ssid char[ 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); - For other languages except assembler language, code zero for that
parameter in the CALL DSNALI statement. For example, suppose that
you are coding a CONNECT call in a COBOL program, and you want to
specify all parameters except the return code parameter. You can write
a statement similar to the following statement:
CALL 'DSNALI' USING FUNCTN SSID TECB SECB RIBPTR BY CONTENT ZERO BY REFERENCE REASCODE SRDURA EIBPTR. - For assembler language, code a comma for that parameter in the
CALL DSNALI statement. For example, to specify all optional parameters
except the return code parameter write a statement similar to the
following statement:
CALL DSNALI,(FUNCTN,SSID,TERMECB,STARTECB,RIBPTR,,REASCODE,SRDURA,EIBPTR, GROUPOVERRIDE)
The following figure shows a sample parameter list structure for the CONNECT function.

- Terminates the parameter list without specifying the parameters retcode, reascodeand srdura and
places the return code in register 15 and the reason code in register
0.
Terminating the parameter list at this point ensures compatibility with CAF programs that require a return code in register 15 and a reason code in register 0.
- Terminates the parameter list after the parameter retcode and
places the return code in the parameter list and the reason code in
register 0.
Terminating the parameter list at this point enables the application program to take action, based on the return code, without further examination of the associated reason code.
- Terminates the parameter list after the parameter reascode and
places the return code and the reason code in the parameter list.
Terminating the parameter list at this point provides support to high-level languages that are unable to examine the contents of individual registers.
If you code your CAF application in assembler language, you can specify the reason code parameter and omit the return code parameter.
- Terminates the parameter list after the parameter srdura.
If you code your CAF application in assembler language, you can specify this parameter and omit the retcode and reascode parameters.
- Terminates the parameter list after the parameter eibptr.
If you code your CAF application in assembler language, you can specify this parameter and omit the retcode, reascode, or srdura parameters.
- Terminates the parameter list after the parameter groupoverride.
If you code your CAF application in assembler language, you can specify this parameter and omit the retcode, reascode,srdura, or eibptr parameters.
Even if you specify that the return code be placed in the parameter list, it is also placed in register 15 to accommodate high-level languages that support special return code processing.