The linkage stack query macro IEALSQRY checks the level of the current entry on the linkage stack relative to the level of the entry associated with the most recent recovery routine. The output of the macro is a value (in the TOKEN parameter) a recovery routine can use to ensure that a retry routine runs with the appropriate linkage stack entry. If the return code is not zero, the value in TOKEN is not valid.
Your program is to pass the value in TOKEN to a recovery routine. When the recovery routine gets control, it can place that value in the SDWA field SDWALSLV. That action ensures that, when a retry routine gets control, it has the correct linkage stack level. For information about how to use the value in TOKEN, see the topic about the linkage stack at a retry routine in z/OS MVS Programming: Assembler Services Guide.
See z/OS MVS Programming: Assembler Services Guide for further information about the use of the SDWALSLV field.
The requirements for the caller are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | Problem state, PSW key 8-15 |
Dispatchable unit mode: | Task |
Cross memory mode: | Any PASN, any HASN, any SASN |
Amode: | 24- or 31-bit |
ASC mode: | Primary or access register (AR) |
Interrupt status: | Enabled or disabled for I/O and external interrupts |
Locks: | No locks are required. |
Control parameters: | Control parameters must be in the primary address space. |
None.
None.
Before issuing the IEALSQRY macro, the caller does not have to place any information into a general purpose register (GPR) or access register (AR).
This macro should not be used in a performance-sensitive program.
The standard form of the IEALSQRY macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IEALSQRY. |
IEALSQRY | |
␢ | One or more blanks must follow IEALSQRY. |
Valid parameters | |
TOKEN=token | token: RS-type address or register
(1) - (12). Default: Leave token in GPR 0. |
,RETCODE=retcode | retcode: RS-type address, or
register (2) - (12). Default: No retcode processing. |
The parameters are explained as follows:
The IEALSQRY caller might receive abend code X'B78'. For detailed abend code information, see z/OS MVS System Codes.
When control returns to the caller, register 15 contains one of the following decimal return codes (hexadecimal values are shown in parentheses):
Return Code | Meaning and Action |
---|---|
0 (0) | Meaning: Successful completion. A valid
value is in the TOKEN parameter. Action: None required. |
4 (4) | Meaning: The system encountered a linkage
stack entry that violates the authorization or stacking-PC conditions
that are required for successful retry. Action: Avoid using the token when retrying. You cannot retry to the current linkage stack level. |
8 (8) | Meaning: No recovery routine of the proper
type exists. Either no recovery routine exists or the most recently
activated recovery routine is STAE or STAI. Action: Avoid using the token when retrying. You cannot retry to the current linkage stack level. |
16 (10) | Meaning: System error. Action: Report the problem to IBM. Avoid using the token when retrying. You cannot retry to the current linkage stack level. |
IEALSQRY TOKEN=MYTOKEN
.
.
MYTOKEN DS H Output TOKEN