Start Physical I/O (SPIO)/OP=94

Format

OP AF BF A Address

OP = 94

AF is unused and reserved. May be specified as an indirect field length. A literal flag will cause an Invalid Instruction (IEX = 21) fault.

BF is unused and reserved, but may be specified as an indirect field length.

A is the address of an IOCB. The address may be indexed, indirect or extended. The final address controller must be equal to UN or an Invalid Instruction (IEX = 03) fault will occur. The final address must be modulo 100 or an Invalid Instruction (IEX = 07) fault will occur.

Function

The Start Physical I/O instruction makes an attempt to initiate an I/O to the I/O subsystem (IOS). If the I/O may be initiated, the instruction provides the necessary parameters to the IOS in an IOCB. The COMS are used to report the fact that the I/O has been initiated or not.

This instruction may only be executed with Privileged Enable set or an Invalid Instruction (IEX = 02) fault is reported.

Detailed Description

All of the parameters found in the IOCB except the buffer MAST number are used by the IOS. Those parameters that are used fall into one of three categories:

  1. Parameters that are used by the IOS but are unmodified by the IOS (IOP Variant, Channel Number, Unit Number, Buffer Size, DLP Command)
  2. Parameters that are used and modified by the IOS and may be used by software after the I/O completes in order to determine the status of the completed I/O (Remaining Data Length, I/O Result Descriptor)
  3. Parameters that are modified by the IOS and are not meant to be used by software after the I/O completes. The content of such fields is not guaranteed (Buffer Begin Address)

The following checks are performed before initiating the I/O operation:

  1. The IOCB Memory Area base must be the same as that of the System IOCB or an Invalid Instruction (IEX = 07) fault is reported. The System IOCB Memory Area base has been initialized by an WHR. Not all systems perform this check. See Compatibility Notes A.60.
  2. The OP Value field in the DLP command (digit 62) must be valid or an Invalid Instruction (IEX = 07) fault is reported.

If a fault is detected, the I/O is not fired and the instruction is terminated with no further action.

If no fault is detected, an overflow check is performed on the I/O completion Queue and if an overflow is detected, the I/O is not fired and the Comparison Flags are set to HIGH.

If no overflow is detected, the I/O is fired and the comparison flags are set to EQUAL.

Comparison and Overflow Flags

Set the Comparison Flags to HIGH if the I/O complete queue overflows, otherwise set them to EQUAL.

The Overflow Flag is not affected by this instruction.

Overlap

Field overlap is not applicable to this instruction.

Examples

instructions/spio.txt · Last modified: 2009/05/09 05:33 by scott
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki