zHPF Channel Program
- A transport control word (TCW) that contains pointers to all of the other areas of the channel
program and the number of bytes to be read or written. The channel uses the TCW to transport the
commands and data to the device and locate the status block used to store ending status information;
it is not sent to the device. You can use the IOSDTCW macro to map the TCW.
For an EXCPVR request, the TCW must reside in 24 or 31-bit central and virtual storage.
For EXCP, the TCW must be in 24 or 31-bit virtual storage or anywhere in central storage.
For both EXCP or EXCPVR, the TCW must start on a 64-byte boundary. If the TCW does not start on a 64-byte boundary, EXCP fails the request with abend code 800, reason code X'OA'.
- A transport status block (TSB) that contains I/O completion information, sense data, and measurement statistics. The TSB is assigned by z/OS®, not the EXCP user. If you provide a TCW with a nonzero TSB address, EXCP fails the request with abend code 800. The system copies all relevant status information from the TSB into the IOBE.
- A transport command control block (TCCB) containing the commands and control data parameters to
be passed to the device. The TCCB should start on a doubleword boundary, must reside within a 4 KB
page, and may reside in 64-bit virtual and central storage. You can use the IOSDTCCB macro to map
the TCCB, including device command words (DCWs). The TCCB consists of three parts:
- Transport control area header (TCAH) containing information about the transport control area (TCA) and the commands that are contained within.
- Transport control area (TCA) containing the commands and control parameters. Each command is
represented by a DCW that consists of a command code, flags to indicate chaining and other options,
a control data count, and a data byte count, if the command is used to transfer data. If the command
transfers control data (command parameters) to the device, the control data follows the DCW in the
TCA.
Unlike CCWs, DCWs do not point to their corresponding I/O buffers. The I/O buffers for all DCWs are pointed to by the TCW, and the I/O buffers associated with a particular DCW are based on the amount of data transferred by the previous DCWs.
The maximum size of the TCA is 240 bytes.
- Transport control area trailer (TCAT) containing the number of bytes transferred.
- One or more I/O buffers. The TCW may point to a single read and/or write buffer.
For EXCPVR requests, the I/O buffers can be up to 4 KB. If more than 4 KB of data needs to be transferred or the data is non-contiguous or spans a page, a data TIDAL must be created. The I/O buffers and the TIDAWs may reside in 64-bit virtual and central storage. A TIDAL can also be chained to another TIDAL by setting the TIDAL transfer-in-channel (TTIC) bit in the last TIDAW in the list. In this case, the TIDAW address field does not point to an I/O buffer, but instead points to another TIDAL.
For EXCP requests, the I/O buffers can be greater than 4 KB - see TIDAW requirements for EXCP requests.
Request and format | Channel Program Component | Virtual storage location | Central storage location |
---|---|---|---|
EXCP | TCW | 31-bit | Any |
TCCB | Any | Any | |
TIDAL | Any | Any | |
I/O Buffer | Any | Any | |
EXCPVR | TCW | 31-bit | 31-bit |
TCCB | Any | Any | |
TIDAL | Any | Any | |
I/O Buffer | Any | Any |