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
DOS error codes returned in the RPL FDBK field that do not exist in
os are mapped to their as equivalents. If the user has specified
synchronous processing, this return code is passed unchanged in register
15.
For asynchronous processing, return codes are cleared before return
and any exit routines set inactive are reactivated in the EXLST. Also,
all ECBs are set to WAITING status.
CHECK PROCESSING: For CHECK processing, return codes in the RPL FDEK fIeld are--checked to determine the results of the I/O operation. If
there is an active exit routine provided for the return code, control is
passed to that routine. Also, all WAITING ECBs are posted with an
equivalent completion code.
If no active exit routine is provided or if the exit routine returns
to VSAM, the return code is placed in register 15 and control is
returned to the instruction following the CHECK. Two types of support for error routine processing are provided in DMSVIP. Entry point DMSVIP3 provides support for user exit routines;
entry point DMSVIP4 provides support for ERET error returns. DMSVIP provides support for as VSAft I/O error exits at entry point D3SVIP3. At this entry point the Dossve bit
is turned off and the user storage key is restored.
The address of the user routine is recovered from VIP's saved exit
list (either the primary exit list in the work area or the overflow exit
list, OEXLSA). Control then passes to the exit routine. If the routine
is one that returns to VSAM, the DOSSVC flag is set ON and VSAM processing continues. DMSVIP can save the addresses of up to 128 exit routines during
execution of a user program. ]]BT DMSVIP provides support for as VSAM BRHT exit routines used in conjunction with the TESTCB macro. This support
is located at entry point DMSVIP4. At DMSVIP4, the Dossve bit is turned
off and the user storage key is restored. The address of the ERET
routine is recovered from the work area and control passes to that The ERET routine may not return control to VSAM. COMPLETION PROCESSING FOR OS AND DOS VSA! PROGRAMS When an as or DOS VSAM program completes, control is passed to module DMSVSR, which "cleans up" after VSAM. DMSVSR can be called from three
routines after as processing: DMSINT, if processing completes without system errors or serious user
errors. eMS Method of Operation and Program Organization 2-121
Previous Page Next Page