or busy. If either is found, condition code 1 is placed in the virtual PSW and the proper CSW status is stored in the virtual aachine's page
zero. If all components in the subchannel path are free,DeKVSIEX proceeds to simulate the SIO by locating and loading the contents of the
virtualmachine's CAW from virtual location X'48' and testing the device
type of the unit addressed.
The device type is in theVDEVBLOK. If the device class code
indicates aterminal or console, control is passed to the aodule DMKVCNEX with a GOTO. DeKVCREX interprets and simulates the entire
channel program, moving the necessary data to orfroa virtual storage
and reflecting the proper interruptions and status bytes.When DeKVCIEX has finished, it passes control directly to the dispatcher, DftKDSPCH. If the referenced device is a spooled unit record device, DeKVSIEX passes control to DMKVSPEX for additional processing. When control returns to DBKVSIEX, it passes control to DftKDSPCH. If the device is not a terminal or a spooling device, the SIO is
translated and executed directly on the real systea'sI/O device. DMKVSIEX calls DMKFREE to obtain free storage and then it constructs an IOBLOK in the storage obtained. The IOBLOK serves as an identifier of
theI/O task to be performed. It contains a pointer to the channel
program to be executed and the address of the routine that is to handle
any interruptions associated with the operation.DMKVSIEX stores the contents of the user's CAW in IOBC1W and sets the
interruption return address(IOBIRA) to be the same as the virtual
interruption return address(DHKVIOIN) in DftKVIO. The CCW translation
routine(DMKCCWTR) is then called to locate and bring into real main storage all user pages associated with the channel prograa, including
those containing data andCCWs. The following occurs: • The CCWs are translated. • A corresponding real channel program is constructed. • The data pages are locked into real storage. • DftKCCWTR returns control to DftKVSIEX. DftKVSIEX places the user in a
pseudo wait state,IOWAIT, and calls the real I/O scheduler DftKIOSQV to schedule the I/O on the real configuration. DMKIOSQV queues the request for operation on the real channel,
control unit, and device corresponding to the address used by the
virtual machine.When the real SIO is issued, DftKIOS takes the user out
ofIOWAIT and reflects the condition code for the SIO if it is zero. If
it is not zero, the operation is further analyzed byDftKVIOII. In any
case,DftKIOSQV returns control to DftKVSIEX, which passes control to DMKDSPCH. Privileged I/O Instructions Other privileged I/O instructions are handled directly by DftKVSIEX. scans the virtual channel, control unit, and device blocks in
the same manner as for aSIO and reflects the proper status and
condition to the virtualmachine. In soae cases (TIO), the status of
the addressed devices is altered after the status is presented.
CP Introduction 1-85
zero. If all components in the subchannel path are free,
virtual
type of the unit addressed.
The device type is in the
indicates a
channel program, moving the necessary data to or
and reflecting the proper interruptions and status bytes.
translated and executed directly on the real systea's
the
program to be executed and the address of the routine that is to handle
any interruptions associated with the operation.
interruption return address
interruption return address
routine
those containing data and
pseudo wait state,
control unit, and device corresponding to the address used by the
virtual machine.
of
it is not zero, the operation is further analyzed by
case,
the same manner as for a
condition to the virtual
the addressed devices is altered after the status is presented.
CP Introduction 1-85