Execute Channel Program in Real Storage
In IBM mainframe operating systems, Execute Channel Program in Real Storage (EXCPVR) is a supervisor call for low-level device access, where the programmer is responsible for providing a list of device-specific channel command words to be executed by I/O channels, control units and devices. Additionally, the programmer is expected and required to ensure that the input/output data areas are in real storage and are "fixed". EXCPVR was first introduced in SVS.
EXCPVR may be viewed, historically, as a V=R version of EXCP. However, EXCPVR is not restricted to V=R applications. Indeed, EXCPVR may refer to non-V=R data areas provided such data areas are "fixed" and the channel command words which reference such data areas have been translated from virtual to real addresses by the programmer using the LRA privileged instruction. In the later instances of the OS, support was added for Format 1 CCWs, and, hence, for access to data areas which are "above the line". The user of EXCPVR must be authorized and must remain in supervisor mode and key throughout the EXCPVR process.
EXCPVR's front-end is always in TCB mode, as EXCPVR is a Type 1 SVC. In MVS and subsequent instances of the OS, EXCPVR's back-end is always in SRB mode, but the back-end contains emulation code which allows the exits developed for earlier instances of the OS to function largely as before.