Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF
IDAW Requirements for EXCPVR Requests z/OS DFSMSdfp Advanced Services SC23-6861-01 |
|||||||||||||||
For EXCPVR requests, the caller is responsible for creating IDAWs when the data areas associated with the CCWs in your channel program cross certain boundaries. This can be done before issuing the EXCPVR macro or by the SIO appendage after the EXCPVR macro is issued. See SIO Appendage for more information. For format-0 channel programs, the CCWs and IDAWs must be below 16 MB in central storage. For format-1 channel programs, the CCWs and IDAWs must be below 2 GB in central storage. Regardless of the channel program format, you can use 31-bit or 64-bit IDAWs to point to storage areas above or below 2 GB in central storage. Note: 64-bit IDAWs are supported only for direct access storage devices
(DASD) and on all IBM-supplied cartridge tape devices. You should
examine bit UCBEIDAW in the UCB to determine whether 64-bit IDAWs
are supported by the device. If you use 64-bit IDAWs, an IOBE must
be specified for the EXCPVR request and flag IOBEEIDA in the IOBE
must be set.
If data areas do cross boundaries, provide an additional
IDAW in the IDAL for each crossed boundary.
Before you convert the virtual addresses in the channel program to real addresses, you must first page fix the data areas in central storage. This can be done before issuing the EXCPVR macro or by the page fix appendage after the EXCPVR macro is issued. After the data areas have been page fixed, you can use the LRA instruction to convert the virtual addresses in the channel program to central storage addresses, as long as the central storage addresses are below 2 GB. The LRA instruction returns a 31-bit central storage address regardless of whether you are in 24-bit or 31-bit addressing mode, but fails in those addressing modes if the central storage address is above 2 GB. If the central storage address is above 2 GB, you must either use the LRAG or STRAG instruction to convert the virtual address to a real address or else use the LRA instruction after first switching to 64-bit addressing mode. If all of the central storage addresses associated with the data buffers are below 2 GB, then you can use 2 KB (31-bit) IDAWs to address the data. Otherwise, you must use 4 KB (64-bit) IDAWs to address the data. For the most efficient use of system resources, code LOC=(ANY,64) or LOC=(BELOW,64) when you obtain storage with the GETMAIN or STORAGE macro. See z/OS MVS Programming: Assembler Services Reference ABE-HSP. The following illustration shows the relationship between the CCW
and the IDAWs.
Note the following information about the IDAL:
The number of 31-bit IDAWs that are required depends on the number of 2 KB boundaries that are crossed by the data. For example, if your data is 800 bytes long and does not cross a 2 KB boundary, no IDAWs are required. If your data crosses a 4 KB boundary, then two IDAWs are required. If your data is 5000 KB long, at least two IDAWs are required. If your data crosses two 4 KB boundaries, four IDAWs are required. The first indirect address is the central storage address of the
first byte of the data area. The second and subsequent indirect addresses
are the central storage addresses of the second and subsequent 2 KB
or 4 KB boundaries of the data area. For example, if the data area
central storage address is X'707FF' and the byte count is X'1802',
the 4-byte IDAL contains the following central storage addresses (assuming
the central storage addresses are contiguous):
If the data area central storage address is X'707FF' and
the byte count is X'800', the IDAL contains the following
addresses:
|
Copyright IBM Corporation 1990, 2014
|