IWM4MDEL — Delete delay monitoring environment
The purpose of this service is to delete a delay monitoring environment, so that MVS state sampling will no longer monitor for new work requests to be associated with the input monitoring token.
The delete macro is provided in list, execute, and standard form. The list form accepts no variable parameters and is used only to reserve space for the parameter list. The standard form is provided for use with routines which do not require reentrant code. The execute form is provided for use with the list format for reentrant routines. The delete macro is provided in PL/AS and assembler formats.
The parameter list must be in the caller's primary address space.
Environment
The requirements for the caller are:
Minimum authorization: | Supervisor state or program key mask (PKM) allowing keys 0-7. |
---|---|
Dispatchable unit mode: | Task or SRB |
Cross memory mode: | Any PASN, any HASN, any SASN |
AMODE: | 31- or 64-bit. If in 64-bit addressing mode, code SYSSTATE
AMODE64=YES before invoking this macro. |
ASC mode: | Primary |
Interrupt status: | Enabled for I/O and external interrupts |
Locks: | Unlocked, but FRRs are allowed. |
Control parameters: | Control parameters must be in the primary address space. |
Programming requirements
None.
Restrictions
- This macro may not be used prior to the completion of WLM address space initialization
- If the key specified on IWM4MCRE was a user key (8-F), then the following must ALL be true:
- Caller must be in non-cross-memory mode (P=S=H). This implies that the current primary must match the primary at the time that IWM4MCRE was invoked. Running in a subspace is not supported.
- Must be in TCB mode (not SRB).
- Current TCB must match the TCB at the time that IWM4MCRE was invoked.
- The caller must serialize to prevent any delay monitoring services from being invoked concurrently or subsequently for the environment represented by the monitoring token
- This service should not be invoked while in a RTM termination routine (resource manager) for the TCB owning the monitoring environment since MVS will have its own resource cleanup routine and unpredictable results would occur. It is legitimate to use this service while in a recovery routine, however, or in mainline processing.
- This macro may only be used on z/OS V2R1 or higher.
Input register information
Before issuing the IWM4MDEL macro, the caller does not have to place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.
Output register information
- Register
- Contents
- 0
- Reason code if GR15 return code is non-zero
- 1
- Used as a work register by the macro
- 14
- Used as a work register by the macro
- 15
- Return code'.
- Register
- Contents
- 0
- Used as a work register by the macro
- 1
- Used as a work register by the macro
- 14
- Used as a work register by the macro
- 15
- Used as a work register by the macro'.
Some callers depend on register contents remaining the same before and after using a service. If the system changes the contents of registers on which the caller depends, the caller must save them before calling the service, and restore them after the system returns control.
Performance implications
None.
Syntax
Parameters
The parameters are explained as follows:
- name
- An optional symbol, starting in column 1, that is the name on the IWM4MDEL macro invocation. The name must conform to the rules for an ordinary assembler language symbol.
- ,MF=S
- ,MF=(L,list addr)
- ,MF=(L,list addr,attr)
- ,MF=(L,list addr,0D)
- ,MF=(E,list addr)
- ,MF=(E,list addr,COMPLETE)
- An optional input parameter that specifies the macro form.
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.
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 may 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.
- ,list addr
- The name of a storage area to contain the parameters. For MF=S and MF=E, this can be an RS-type address or an address in register (1)-(12).
- ,attr
- An optional 1- to 60-character input string that you use to force boundary alignment of the parameter list. Use a value of 0F to force the parameter list to a word boundary, or 0D to force the parameter list to a doubleword boundary. If you do not code attr, the system provides a value of 0D.
- ,COMPLETE
- Specifies that the system is to check for required parameters and supply defaults for omitted optional parameters.
- MONTKN=montkn
- A required input parameter which contains the delay monitoring token for the environment to be
deleted.
To code: Specify the RS-type address, or address in register (2)-(12), of a 32 bit field.
- ,MONTKN64=montkn64
- A required input parameter which contains the long delay monitoring token for the environment to
be deleted.
To code: Specify the RS-type address, or address in register (2)-(12), of a 64 bit field.
- ,PLISTVER=IMPLIED_VERSION
- ,PLISTVER=MAX
- ,PLISTVER=0
- An optional input parameter that specifies the version of the macro. PLISTVER determines which
parameter list the system generates. PLISTVER is an optional input parameter on all forms of the
macro, including the list form. When using PLISTVER, specify it on all macro forms used for a
request and with the same value on all of the macro forms. The values are:
- IMPLIED_VERSION, which is the lowest version that allows all parameters specified on the request to be processed. If you omit the PLISTVER parameter, IMPLIED_VERSION is the default.
- MAX, if you want the parameter list to be the largest size currently possible. This size
might grow from release to release and affect the amount of storage that your program needs.
If you can tolerate the size change, IBM recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form, when both are assembled with the same level of the system. In this way, MAX ensures that the parameter list does not overwrite nearby storage.
- 0, if you use the currently available parameters.
To code: Specify one of the following:- IMPLIED_VERSION
- MAX
- A decimal value of 0
- ,RETCODE=retcode
- An optional output parameter into which the return code is to be copied from GPR 15. If you
specify 15, GPR15, REG15, or R15 (within or without parentheses), the value will be left in GPR 15.
To code: Specify the RS-type address of a fullword field, or register (2)-(12) or (15), (GPR15), (REG15), or (R15).
- ,RSNCODE=rsncode
- An optional output parameter into which the reason code is to be copied from GPR 0. If you
specify 0, 00, GPR0, GPR00, REG0, REG00, or R0 (within or without parentheses), the value will be
left in GPR 0.
To code: Specify the RS-type address of a fullword field, or register (0) or (2)-(12), (00), (GPR0), (GPR00), REG0), (REG00), or (R0).
ABEND codes
None.
Return codes and reason codes
- GPR 15 (and retcode, when you code RETCODE) contains a return code.
- When the value in GPR 15 is not zero, GPR 0 (and rsncode, when you code RSNCODE) contains a reason code.
The following table identifies the hexadecimal return and reason codes. IBM support personnel may request the entire reason code, including the xxxx value.
Return Code | Reason Code | Meaning and Action |
---|---|---|
0 | — | Equate symbol: IwmRetCodeOk Meaning: Successful completion. |
4 | — | Equate symbol: IwmRetCodeWarning Meaning: Successful completion, unusual conditions noted. |
4 | xxxx0402 | Equate symbol: IwmRsnCodeNoMonEnv Meaning: Input monitoring token indicates no monitoring environment was established. |
4 | xxxx0403 | Equate symbol: IwmRsnCodeMonEnvNotAlloc Meaning: Input monitoring token does not reflect an allocated monitoring environment owned by the current home address space. |
8 | — | Equate symbol: IwmRetCodeInvocError Meaning: Invalid invocation environment or parameters. |
8 | xxxx0802 | Equate symbol: IwmRsnCodeXmemUserKeyTkn Meaning: Caller is in cross-memory mode while the token was obtained in user key. |
8 | xxxx0803 | Equate symbol: IwmRsnCodeDisabled Meaning: Caller is disabled. |
8 | xxxx0804 | Equate symbol: IwmRsnCodeLocked Meaning: Caller is locked. |
8 | xxxx0805 | Equate symbol: IwmRsnCodeMonEnvSwitchCont Meaning: Input monitor token reflects a switch continuation. |
8 | xxxx0806 | Equate symbol: IwmRsnCodeMonEnvParent Meaning: Input monitoring token reflects a continuation to a dependent monitoring environment. |
8 | xxxx0808 | Equate symbol: IwmRsnCodeMonEnvDepCont Meaning: Input monitoring token reflects a continuation from a parent monitoring environment. |
8 | xxxx0809 | Equate symbol: IwmRsnCodeSrbUserKeyTkn Meaning: Caller is in SRB mode, while the token was obtained in a user key (8-F). |
8 | xxxx080A | Equate symbol: IwmRsnCodeTcbNotOwnerUserKeyTkn Meaning: Current TCB is not the current owner, while the token was obtained in a user key (8-F). |
8 | xxxx080B | Equate symbol: IwmRsnCodeBadPl Meaning: Error accessing parameter list. |
8 | xxxx0823 | Equate symbol: IwmRsnCodeDatoff Meaning: Caller invoked service while DATOFF. |
8 | xxxx0824 | Equate symbol: IwmRsnCodeAmode24 Meaning: Caller invoked service but was in 24-bit addressing mode. |
8 | xxxx0825 | Equate symbol: IwmRsnCodeAscModeNotPrimary Meaning: Caller invoked service but was not DAT on Primary ASC mode. |
8 | xxxx0826 | Equate symbol: IwmRsnCodeTaskTerm Meaning: Caller invoked service while task termination is in progress for the TCB associated with the owner. |
8 | xxxx0827 | Equate symbol: IwmRsnCodeRsvdNot0 Meaning: Reserved field in parameter list was non-zero. |
8 | xxxx0828 | Equate symbol: IwmRsnCodeBadVersion Meaning: Version number in parameter list is not valid. |
8 | xxxx082A | Equate symbol: IwmRsnCodeMonEnvRelated Meaning: Input monitor token is related to a parent monitoring environment. |
10 | — | Equate symbol: IwmRetCodeCompError Meaning: Component error. |
Examples
None.