z/OS DFSMSdfp Advanced Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Comparing EXCP and EXCPVR

z/OS DFSMSdfp Advanced Services
SC23-6861-01

EXCP and EXCPVR are two macros you can use to initiate channel program I/O operations, or as it is often put, execute a channel program. Both provide the same function - a device dependent way to perform I/O operations. However, there are a number of differences:
  • In order to issue an EXCPVR request, your program must run in a protection key between zero and seven, run in supervisor state, or be APF authorized. An EXCP request, on the other hand, can be issued by programs running in any key, including user key (key 8) or problem state.
  • If you issue an EXCPVR request, your program is responsible for translating its own virtual channel program into a real channel program. This includes page fixing your channel program and I/O buffers either before issuing the EXCPVR request, or by using the page fix appendage and updating your channel program with real addresses, building indirect address lists when needed, and updating the address fields within your channel program with real addresses. This allows your program to improve the efficiency of I/O operations in a paging environment, but does add some complexity to your program.

    If you issue an EXCP request, you supply a virtual channel program. In other words, the channel program contains the virtual addresses of storage areas that may be in pageable storage, and the system is responsible for translating your virtual channel program into a real channel program.

    Note that EXCP requests issued in an APF-authorized program in a V=R address space (EXCP V=R requests, in other words) are not translated. A V=R address space is one defined with ADDRSPC=REAL in the JCL EXEC statement. Because the address space is V=R, any CCWs created by the user already have correct real data addresses. (Translation would only re-create the user's channel program, so the CCWs are used directly.)

For information on using APF, see z/OS MVS Programming: Authorized Assembler Services Guide.
Table 1. Summary of the differences between EXCP, EXCPVR, and EXCP V=R
Function EXCP Characteristics EXCPVR Characteristics EXCP V=R Characteristics
Program state and key Any protection key, supervisor or problem state. Protection keys 0-7, supervisor state, or APF authorized. Protection keys 0-7, supervisor state, or APF authorized.
User responsible for translating their channel program No Yes No translation required.
CCW formats supported 0 and 1 0 and 1 0 and 1
Virtual IDAW supported Yes No No
MIDAWs supported No Yes No
High Performance FICON® for System z® (zHPF) channel programs supported Start of change Yes End of change Yes No
User can modify channel program during execution No Yes, non-zHPF only Yes
Self modifying channel programs supported No Yes, non-zHPF only Yes

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014