The requirements for the caller are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | Supervisor state. Zero PSW key. |
Dispatchable unit mode: | Task |
Cross memory mode: | Any PASN, any HASN, any SASN |
AMODE: | 31-bit |
ASC mode: | Primary |
Interrupt status: | Enabled for I/O and external interrupts. |
Locks: | No locks may be held. |
Control parameters: | Must be in the primary address space. |
The caller should include the IOSDENQ macro to get equate symbols for the return and reason codes.
The caller must not have functional recovery routines (FRRs) established.
The caller must not have a pending ENQ for the same resource managed by this service.
Before issuing the IOSENQ 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.
The contents of registers 14 through 1 are altered during processing.
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 IOSENQ macro is written as follows:
Syntax | Description |
---|---|
name | name: Symbol. Begin name in column 1. |
␢ | One or more blanks must precede IOSENQ. |
IOSENQ | |
␢ | One or more blanks must follow IOSENQ. |
RESOURCE=DYNCHPID | |
,REQUEST=ENQ | |
,STATE=SHARED | |
,STATE=EXCLUSIVE | |
,COND=NO | |
,COND=YES | |
,WAITTIME=waittime | Required choice with REQUEST=ENQ,COND=YES. |
,WAITTIME=SYSTEM_DEFINED | Default: SYSTEM_DEFINED. |
,REQUEST=DEQ | |
,RETCODE=retcode | retcode: RS-type address or register (2) - (12). |
,RSNCODE=rsncode | rsncode: RS-type address or register (2) - (12). |
,PLISTVER=IMPLIED_VERSION | Default: PLISTVER=IMPLIED_VERSION |
,PLISTVER=MAX | |
,PLISTVER=1 | |
,MF=S | Default: MF=S |
,MF=(L,list addr) | list addr: RS-type address or register (1) - (12). |
,MF=(L,list addr,attr) | |
,MF=(L,list addr,0D) | |
,MF=(E,list addr) | |
,MF=(E,list addr,COMPLETE) | |
The parameters are explained as follows:
To code: Specify the RS-type address of a fullword field, or register (2)-(12).
To code: Specify the RS-type address of a fullword field, or register (2)-(12).
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.
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.
The caller may get the following abend codes:
ABEND Code | Meaning and Action |
---|---|
0C4-4 | Meaning: Your program was not in supervisor state with PSW key 0. Action: Call IOSENQ only when in supervisor state with PSW key 0. |
B78-8 | Meaning: Your program was in problem state with PSW key 8-15. Action: Call IOSENQ only when in supervisor state with PSW key 0. |
Macro IOSDENQ provides equate symbols for the return and reason codes.
The following table identifies the hexadecimal return and reason codes:
Hexadecimal Return Code | Reason Codes, Meaning and Action |
---|---|
00 | Equate Symbol: IOSENQRc_OK
|
04 | Equate Symbol: IOSENQRc_Warn
|
08 | Equate Symbol: IOSENQRc_InvParm
|
0C | Equate Symbol: IOSENQRc_Env
|