Format of a Block I/O Entry

The block I/O entry list is a contiguous list of entries, each defining a read or write request. The starting address of the list is specified in the block I/O parameter list (BIOPL). If your virtual machine is an XC virtual machine that is executing in host-access-register mode, then the ALET at offset X'20' of the BIOPL identifies the address space containing the block I/O entry list. Otherwise, the block I/O entry list resides in the host-primary address space. For performance reasons, try not to let the block I/O entry list cross a page boundary.

The status code field in each entry is updated in guest storage to reflect the status of the corresponding operation; it is unpredictable whether the remainder of the block I/O entry list is stored back into guest storage.

Each entry within the block I/O entry list is mapped by HCPBELBK to one the following formats.

If bit 0 of byte X'02' in the BIOPL is zero:

See surrounding text for a description of the diagram.

If bit of byte X'02' in the BIOPL is one:

See surrounding text for a description of the diagram.
Type
is the one-byte request type for this I/O operation:
  • X'01' Write request
  • X'02' Read request
Status
is a byte set by this function to contain a status code for this read or write request. See Status Codes for a description of the values assigned to this field.
Block Number
is a fullword or doubleword field containing the DASD block number for this request. Block numbers are assigned sequentially to DASD records.
Data-Buffer ALET
If your virtual machine is an XC virtual machine that executes in host-access-register mode, then this fullword field contains the access-list-entry token (ALET) designating the address space containing the data buffer. If the virtual CPU of your XC virtual machine iexecutes in host-primary-space mode or your virtual machine is not an XC virtual machine, then this field is ignored, and the data buffer is contained in the host-primary address space.
Data-Buffer Address
is a fullword or doubleword field containing the guest absolute address of the data for this request. For a write request this is the location in storage from which the data is written to DASD. For a read request this is the location in storage where the data read from DASD is placed.
Reserved
The rest of this block is reserved for IBM® use and must contain binary zeros.