The requirements for the caller are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | Problem state with any PSW key |
Dispatchable unit mode: | Task |
Cross memory mode: | Any PASN, any HASN, any SASN |
AMODE: | 31-bit or 64-bit If in AMODE 64, specify SYSSTATE AMODE64=YES before invoking this macro. |
ASC mode: | Primary or Access register (AR) |
Interrupt status: | Enabled for I/O and external interrupts |
Locks: | No locks held |
Control parameters: | Control parameters must be in the primary address space |
This service cannot be used reliably until the job has begun execution. Invoking the service before the first job step has started executing is not supported (for example, in exits such as IEFUJI that are invoked before the first job step has started executing).
When using the returned symbol values, the value of the symbol returned will be the last value set prior to or within the current job step (EXEC PGM=statement).
There are no input register requirements for issuing the IEFSJSYM macro.
Some callers depend on register contents remaining the same before and after issuing a service. If the system changes the contents of registers on which the caller depends, the caller must save them before issuing the service, and restore them after the system returns control.
None.
The IEFSJSYM macro with the REQUEST parameter produces a DSECT that maps the format of the function routine input table.
The syntax of the IEFSJSYM macro with REQUEST= is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEFSJSYM. |
IEFSJSYM | |
␢ | One or more blanks must follow IEFSJSYM. |
REQUEST=GETALL | Either REQUEST=GETALL or REQUEST=GETBYNAME is required. |
REQUEST=GETBYNAME | |
,SYMLISTARRAY=symlistarray | Required for REQUEST=GETBYNAME only. |
,NUMENTRIES=numentries | Required for REQUEST=GETBYNAME only. |
,SYMBAREA=symbarea | |
,SYMBAREALEN=symbarealen | |
,DIAGDATA=diagdata | |
,RETCODE=retcode | |
,RSNCODE=rsncode | |
,PLISTVER=IMPLIED_VERSION | IMPLIED_VERSION is the default value. |
,PLISTVER=MAX | |
,PLISTVER=0 | |
,MF=S | S is the default value. |
,MF=(L,list addr,0D) | 0D is the default value. |
,MF=(L,list addr,attr) | |
,MF=(E,list addr,COMPLETE) | COMPLETE is the default value. |
,MF=(E,list addr,NOCHECK) | |
,MF=(M,list addr,COMPLETE) | COMPLETE is the default value. |
,MF=(M,list addr,NOCHECK) | |
The parameters are explained as follows:
Use MF=S to specify the standard form of the macro, which builds an inline parameter list and generates the macro invocation to transfer control to the service. MF=S is the default value.
Use MF=L to specify the list form of the macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. Only the PLISTVER parameter can be coded with the list form of the macro.
Use MF=E to specify the execute form of the macro. Use the execute form together with the list form of the macro for applications that require reentrant code. The execute form of the macro stores the parameters into the storage area defined by the list form, and generates the macro invocation to transfer control to the service.
Use MF=M together with the list and execute forms of the macro for service routines that need to provide different options according to user-provided input. Use the list form to define a storage area; use the modify form to set the appropriate options; then use the execute form to call the service.
A wildcard character (asterisk (*) to match 0 or more characters in the symbol name, or question mark (?) to match exactly one character) can used to specify a generic symbol name. Symbol names should not contain a leading ampersand character (&) or any special character other than a wildcard character.
IEFSJSYM returns a null value (SYDESYMVALUELEN=0) for entries that do not contain valid JCL symbol name; in addition, a return code of IEFSJSYMRC_Warn and a reason code of IEFSJSYMRsn_SymbolNameNotProcessed are set. To code this parameter, specify an RS-type address, or address in register (2)-(12), of a character field.
None.
Table 1 contains return and reason codes, the equate symbols associated with each reason code, and the meaning and suggested action for each return and reason code.
Return Code Decimal (hex) | Reason Code Decimal (hex) | Equate Symbol for Reason Code |
---|---|---|
00 (00) | None. | Equate Symbol: IEFSJSYMRC_Ok Meaning: The requested function was successfully completed. Action: None. |
04 (04) | None. | Equate Symbol: IEFSJSYMRC_Warn Meaning: The values of some of the requested symbols could not be returned. Symbols without values are returned with null values and symbol value lengths of 0. Action: Refer to the action for the individual reason code. |
04 (04) | 04 (04) | Equate Symbol: IEFSJSYMRsn_SymbolNameNotProcessed
Meaning: For a GETBYNAME request, the values of some of the requested symbols could not be returned. This can occur if the symbol was not exported by the calling JCL, if the symbol was not SET after being exported, or if the symbol name input to IEFSJSYM did not follow JCL symbol name conventions. This only occurs for specific symbol names in the array, and not to symbol names that include wildcard characters. Symbols without values are returned with null values and symbol value lengths of 0. Action: Check the submitted JCL to ensure that an EXPORT was done for the requested symbol and that the symbol was SET after the EXPORT statement. |
04 (04) | 08 (008) | Equate Symbol: IEFSJSYMRsn_InsSuffSymSpace Meaning: Insufficient space to return all of the symbols and values requested. Action: Use the value returned in SYDALEN to obtain the storage required to fit all of the returned symbols, values and control information. |
08 (08) | None. | Equate Symbol: IEFSJSYMRC_ParmError Meaning: Invalid input parameter. Action: Refer to the action for the individual reason code. |
08 (08) | 08 (04) | Equate Symbol: IEFSJSYMrsn_ParmlistAddrInvalid Meaning: IEFSJSYM could not use the parameter list provided. Action: Verify that the address of the parameter list is valid and resides in virtual storage of the primary address space. |
08 (08) | 08 (08) | Equate Symbol: IEFSJSYMrsn_SymbareaAddrInvalid Meaning: IEFSJSYM could not use the output symbol area provided Action: Verify that the address of the symbol area is valid and resides in virtual storage of the primary address space. |
08 (08) | 08 (00C) | Equate Symbol: IEFSJSYMrsn_SymbListAddrInvalid Meaning: IEFSJSYM could not use the input symbol list provided. Action: Verify that the address of the data area is valid and resides in virtual storage of the primary address space. |
08 08 | 08 (010) | Equate Symbol: IEFSJSYMRsn_Mismatched_VersLen Meaning: The length of the IEFSJSYM parameter list does not match the version number supplied. Action: Ensure that the parameter list that was built matches the specified or default parameter list version. |
08 08 | 08 (014) | Equate Symbol: IEFSJSYMRsn_Unsupported_version Meaning: The version of the parameter list is not supported with this level of the IEFSJSYM service. Action: Correct the version and other parameters to match the system where the job was run, or run the job on a system that supports this version of IEFSJSYM. |
08 (08) | 08 (18) | Equate Symbol: IEFSJSYMRsn_Unsupported_Function Meaning: The request was for a function that is not supported with this level of the IEFSJSYM service. Action: Choose a function that is supported on this level of IEFSJSYM service, or request this function on a system that supports it. |
0C (0C) | None. | Equate Symbol: IEFSJSYMRC_EnvError Meaning: Environmental Error Action: Refer to the action for the individual reason code. |
0C (0C) | 0C (04) | Equate Symbol: IEFSJSYMRsn_InsSuffHdSpace Meaning: Insufficient space to return the header (SYDHDR) portion of the data area. Action: Refer to the mapping macro IEFSJSYD and pass an area at least as large as the DSECT SYDHDR. |
0C (0C) | 0C (08) | Equate Symbol: IEFSJSYMRsn_StorageNotObtained Meaning: Failed to obtain above the bar storage via IARV64. The length of the storage requested is based on the size of the caller's SYMBAREA and SYMLISTARRAY size. Action: Check the SYMBAREALEN specification. If SYMBAREALEN is coded as an extremely large number, try reducing the SYMBAREALEN to a size that is comparable to the number of symbols requested. |
0C (0C) | 0C (0C) | Equate Symbol: IEFSJSYMRsn_IncorrectExecEnv Meaning: A proper execution environment does not exist for the service. Action: Verify that the program meets the requirements described previously. The returned DIAGDATA value will contain information that identifies the problem. |
0C (0C) | 0C (010) | Equate Symbol: IEFSJSYMRsn_UnexpectedSjfResponse Meaning: Underlying JCL services invoked by the service returned with a unexpected return and reason codes. IEFSJSYM might have been invoked before the job execution environment was established, or after the job execution environment had ended. Action: Verify that the program is running under a batch program environment. The returned DIAGDATA value contains information, such as the JCL service and return and reason codes, to diagnose the error. |
10 (10) | None. | Equate Symbol: IEFSJSYMRC_IntError Meaning: Unexpected internal error. Action: Report the problem to the system programmer. |
SJSYM_RC DS F
SJSYM_RSN DS F
SJDIAG DS 4F
SYMBOLS DS 0D
S1 DC C'DSN '
S2 DC C'VOL '
S3 DC C'UNIT '
SYMBOLAREA DS 64F
IEFSJSYM SYMLISTARRAY=SYMBOLS,NUMENTRIES=3,SYMBAREA=SYMBOLAREA,
SYMBAREALEN=256,DIAGDATA=SJDIAG
or
IEFSJSYM REQUEST=GETALL,SYMBAREA=SYMBOLAREA,SYMBAREALEN=256,
RETCODE=SJSYM_RC,RSNCODE=SJSYM_RSN,DIAGDATA=SJDIAG