Use this system macro to start an input/output (I/O) request while
in preemptive I/O mode. This mode is activated and normal system
I/O processing is suspended through the SPNDC macro.
A parameter area, which is called device operation request block (DOR)
(DCTDOR), is used to define the request. The DOR contains fields
for information such as the:
- Address of the channel program
- Device
- Device interrupt handler
- Protect key for the channel program.
A request-unique parameter can be passed to the preemptive input/output
(PIO) device interrupt handler upon completion of the I/O using the
DOR.
This macro returns a condition code to indicate acceptance of the I/O
request. If the request is accepted, the success or failure of the
ensuing I/O operation is then determined and handled by the PIO device
interrupt handler.
See SPNDC-Suspend Normal CIO Processing for more information about the SPNDC macro.
Format
- label
- A symbolic name can be assigned to the macro statement.
- DOR=label|Rx
- This is either a label assigned to the area containing the DOR as defined
by the DSECT DCTDOR or a register that contains the address of the DOR.
Entry Requirements
- The TPF system must be disabled for interrupts.
- The TPF system must be running with PSW key 0.
- The DOR must have the following fields filled in:
- DORSDA
- Symbolic address of the device.
- DORCAW
- Address of the channel program.
- DORKEY
- Protect key for operation.
- DORLPM
- Logical path mask for the operation.
- DORFG1
- Option flag byte for this request.
- DORPRM
- Unique request parameter (optional).
- DORINT@
- Address of device interrupt handler to process interrupts for this
request.
Return Conditions
- Control is returned to the next sequential instruction (NSI) with a
condition code as follows.
- Condition Code
- Meaning
- 0
- Request accepted.
- 1
- Request not accepted because PIO has not been activated by a SPNDC
macro. See SPNDC-Suspend Normal CIO Processing for more information about the SPNDC macro.
- 2
- Request not accepted because a PIOFC request is already active for the
specified device.
- 3
- Request not accepted because the specified device is not usable;
possible reasons:
- DORLPM is zero
- the SDA is not defined
- the SDA is not mounted
- the SDA is not operational.
- R0 through R15 will not be altered.
Programming Considerations
- This macro can be run on the main I-stream only.
- This macro is for use in the control program (CP) only.
Examples
None.