svc Interruption ihen an SVC interruption occurs, the SVC interruption routine (DftKSVCII) is entered. If the machine is in the problea state, D!KSVCIN takes the
following action: If the interruption was the result of an ADSTOP (SVC code X'B3'), the message ADSTOP AT XXXXX is sent to the user's terminal, the overlaid
instruction is replaced, and the virtual aachine is placed in console
function mode (CP mode) via DMKCFMBK. If the interruption was the result of an error recording interface (SVC 76), DMKSVC checks for valid paraaeters and passes control to DMKVER to convert virtual device addresses in the error record to
real device addresses. The actual recording is accoaplished in DMKIOE and D!KIOF. If recording is not possible, the interrupt is
reflected back to the virtual aachine. !f th@ vir+nal .acbine's paqe 0 was not in real storage, then all
general and are saved, the user's VftBLOK is
flagged as being in an instruction wait, and control is transferred
(via GOTO) to D!KPRGRF to reflect the interruption to the virtual machine. If the virtual machine's page 0 is in aain storage, an appropriate SVC old PSi is stored in the user's page 0 and the interruption is
reflected to the virtual machine, bypassing unnecessary register
saving (fast reflection). If the new virtual PSi indicates a .ode or
enableaent change, all registers are saved in the VftBLOK and control
is transferred to DMKDSPB for PSi validation.
If the aachine is in the supervisor state, the SVC interruption code
is deterained and a branch is taken to the appropriate SVC interruption
handler. SVC 0 Iapossible condition or terminal error. The SVCDIE routine initiates an
abnoraal teraination by using the D!KD!PDK routine. SVC 4 ReServed for IB! use. SVC 8 request that transfers control froa the calling routine to the
routine specified by register 15. The SVCLIIK routine sets up a nev
save area, and then saves the caller's base register in register 12 and
save area address in register 13, and the return address (froa the SVCOPSi) in the new save area. If the called routine is within the
resident CP nucleus, SVCLINK places its address in register 12 and
branches directly to the called routine. If the called routine is in a
pageable aodule, a TRANS aacro is perforaed for register 12 to ensure
that the page containing the called routine is in storage. Upon return froa the TRANS execution, the real address of the pageable routine is
placed in register 12 and SVCLINK branches to the called routine. The
real storage location of D!KCPE is the end of the resident CP nucleus.
Any aodules loaded at a higher real storage address are defined as
pageable modules. If bit zero of register 15 is on when DBKSVC is
entered, then the caller has requested AFFINITY. DBKSVC turns on a bit
in the save area passed to the caller to indicate that control is to be
returned to the caller on the saae processor on which it was running
before issuing the SVC. It is not ensured that control viII be retained by the initiating processor throughout the called operation, but only
that final return will occur on the initiating processor. 1-74 IBM VM/310 Systea Logic and Problea Deteraination--Voluae 1
12 A return request that transfers control fro. the called routine to the
calling routine). The SVCRET routine is invoked. If the routine that
issued the SVC 12 is pageable, then D!KPTRUL is called to unlock the
page. SVCRET then restores registers 12 and 13 (addressability and save
area address saved by SVCLIIK), places the user's return address (also
saved in this area) back into the SVCOPSi, and returns control to the
calling routine by loading the SVCOPSW. SYC 16 Releases current save area fro. the active chain (re.oves linkage
pointers to the calling routine). The SVCRLSE routine releases the
current save area by placing the address of the next higher save area in
register 13 and returns control to the current routine by loading the SYCOPSW. This SVC is used by second level interrupt handlers to bypass
returning the first-level handler under specific circumstances. The
base address field (register 12) in the save area being released is examined to determine if the bypassed routine 1n a pageable Bodule: If so, D!KPTRUL is called to unlock the page. SYC 20 Obtain a new save area. The SVCGET routine places the address of the
next available save area in register 13 and the address of the previous
save area in the save area pointer field of the current save area. SYC 24 In-attached processor mode, SVC 24 causes the instructions following the SYC to be executed by the main processor. This SVC is used only via the SWITCH macro to force processing to continue on the main processor (the
processor capable of perfor:ing 1/0)& If the SWITCH macro determines
that the code is currently running on the main processor then the SVC is
not issued.
There are 35 save areas initially set up by D!KCPIIT for use by the SYC linkage handlers. If all the save areas are used, the linkage
handlers call D!KFREE to obtain additional save areas. CP Introduction 1-15
Previous Page Next Page