DMSVIP gains control from DMSSOP when an OS SVC 19, 20 or 23 (CLOSE TYPE=T) is issued. It also gains control on return from execution of a VSAM function, as described below. DMSVIP performs five main functions: Initializes the CMS/DOS environment for OS VSAM processing. Simulates an OS VSAM OPEN macro. Simulates an OS VSAM CLOSE macro. Simulates an OS VSAM control block manipulation macro· (GENCB, MODCB, SHOWCB, or TESTCB). Processes as VSAM I/O macros. DMSVIP gets control when the first VSAM macro is encountered in the user
program. Initialization processing begins at this time. The CMSDCS ncss is loaded by issuing the command SET DOS ON (VSAM) ASSGN commands
are also issued at this time according to the user-issued DLBL's as
indicated in the DOSCB chain. Once this initialization completes, DMSVIP processes the VSAM request.
After the initialization, DMSVIP first checks to determine which VSAM function is being requested, OPEN, CLOSE, or a control block
manipulation macro.
For OPEN processing, the DOSSVC bit in NUCON is set on and control
passes to DMSBOP via SVC 2. Once the CMSjDOS reutines are in control,
execution of the VSAM function is the same as for the DOS VSAM functions
described abeve. On return from executing the OPEN routine, the address of another
entry point to DMSVIP, at label DMSVIP2, is placed in the ACB for the
data set just opened, the Dassvc bit is turned and control is
passed to DMSSOP, which returns to the user program. DMSVIP2 is the
entry point fer code that performs linkage to the VSAM data management
phase IKQVSM. This is done after the first OPEN because "it is assumed
that, once opened, the user performs I/O for the phase, e.g., a GET or PUT operation. When the linkage routine is entered, the Dassvc bit is set on and
control is given to the VSAM data management routine IKQVSM. On return
from IKQVSM DMSVIP turns off the DOSSVC bit and returns control to the
user program. (Refer to Simulate OS VSAM I/O Macros in this section.)
For CLOSE processing, the DOSSVC bit is set on and centrol is passed to
the CMS/DOS routine DMSCLS via SVC 2. As in the case of OPEN, once
centrol passes to the CMS/DOS routine, execution of the VSAM function is
the same as for the DOS VSAM functions described above. CMS Method of Operation and Program Organization 2-119
On return from executing the VSAM CLOSE, the DOSSVC tit is turned off
and control passes to DMSSOP, which returns to the user progra •• DMSVIP simulates the GENCB, MODCB, SHOWCB, and TESTCB control block
.anipulation macros.
GENCB PROCESSING: When a GENCB macro is issued with BLK=ACB or BLK=EXLST PLIST is passed unmodified to IKQGEN for execution.
If GENCB is issued with BLK=RPL and ECB=address specified, the PLIST is
rearranged to exclude the ECB specification, hecause DOS/VS does not
support ECB processing. The GENCB PLIST is then passed to IKQGEN for
execution. When MODCE, SHOWCB, or TESTCB is
issued, the OS ACB, RPL, and EXLST control blocks are reformatted, if
necessary, to conform to DOS/VS formats.
For MODCB and SHOWCB, the requests are passed to IKQTMS for
processing. When MODCB is issued with EXLST= specified, ensure that the
exit routines return control to entry point DMSVIP3. For TESTCB, check for any error routines the user may have specified.
If the TESTCB specified RPL= and IO=COMPLETE, a not equal result is
passed to the user. All other TESTCB requests are passed to DOS and the new PSW condition code indicates the results of the test.
If an error return is provided for TESTCB, the address of DftSVIP4 is
substituted in the PLIST. This allows DMSVIP to regain control from VSAM so that the DOSSVC bit can be turned off. The error routine is
then given centrol after the address is returned to the PLIST. DMSVIP simulates the OS GET, PUT, POINT, ENDREC, ERASE, and CHECK I/O
macros.
First, the OS request code in register 0 is maPFed to a DOS/VS request
code. The RPL or chain of RPLs is rearranged to DOS for.at (unless that
has already been done).
If there is an ECB address in the OS RPt, a flag is set in the new DOS RPt and the ECB address is saved at the end cf the NPL. Asynchronous I/O processing is simulated by setting active exit
returns inactive in the user EXLST. The exception to this is the JRN1D exit which need not be set inactive since it is not an error exit. Setting error exits to be inactive prevents VSAft from taking an error
exit, thus allowing such an exit to be deferred until a CHECK can be issued for it.
The DOS macro is then issued via a BALR to IKQVSft. 2-120 IBM VM/370 System Logic and Program Determination--Volume 2
Previous Page Next Page