For SVC 202 and 203, the called routine indicates a normal return by
placing a zero in register 15 and an error return by placing a nonzero
code in register 15. If the called routine indicates anormal return,
thenDMSITS makes a normal return to the calling routine. If the called
routine indicates an error return,DMSITS passes the error return to the
calling routine, if onewas specified, and abnormally terminates if none was specified.
For anSVC 202 not followed by "DC AL4(address)", a normal return is
.ade to the instruction following theSVC instruction, and an error
return causes an abend. For anSVC 202 followed by "DC a
normal return is made to the instruction following the DC, and an error
return ismade to the address specified in the DC. In either case,
register 15 contains the return code passed back by the called routine.
For anSVC 203 with a positive half word code, a normal return is .ade
to the instruction following the half word code, and an error return
causes an abend. For anSVC 203 with a negative halfword code, both normal and error returns are made to the instruction following the
halfword code. In any case, register 15 contains the return code passedby the called routine. For macro simulation SVC calls, and for user-handled SVC calls, no
error return is recognized byDMSITS. As a result, DftSITS always
returns to the calling routine by loading theSVC old PSW, which was
saved whenDMSITS was first entered. Upon entry to DMSITS, all registers are saved as they were when the SVC instruction was first executed. Upon exiting from DMSITS, all registers
are restored fro. the area in which they were saved at entry.
The exception to this is register 15 in the case ofSVC 202 and 203. Upon return to the calling routine, register 15 always contains the
value that was in register 15 when the called routine returned toDftSIIS after it had completed processing.
If the called routine
storage protect key ofSave Area, has system status, so that it runs with a PSW 0, then it may store new values into the System If the called routine wishes to modify the location to which control is to be returned, it must modify the following fields: • For SVC 202 and 203, it must modify the NUftRET and ERRET (normal and
error return address) fields.• For other SVCs, it must modify the address field of OLDPSW. To modify the registers that are to be returned to the calling routine,
the fieldsEGPR1, EGPR2, ••• , EGPR15 must be modified.
If this action is taken by the called routine, thenthp. SVCTRACE facility may print misleading information, since SVCTRACE assumes that
these fields are exactly as they were whenD!SITS was first entered. Whenever an SVC call is made, DMSITS allocates two save areas for that
particularSVC call. Save areas are allocated as needed. For each SVC call, a system and user save area are needed.
2-32IBM VM/310 System Logic and Program Determination--Volume 2
placing a zero in register 15 and an error return by placing a nonzero
code in register 15. If the called routine indicates a
then
routine indicates an error return,
calling routine, if one
For an
.ade to the instruction following the
return causes an abend. For an
normal return is made to the instruction following the DC, and an error
return is
register 15 contains the return code passed back by the called routine.
For an
to the instruction following the half word code, and an error return
causes an abend. For an
halfword code. In any case, register 15 contains the return code passed
error return is recognized by
returns to the calling routine by loading the
saved when
are restored fro. the area in which they were saved at entry.
The exception to this is register 15 in the case of
value that was in register 15 when the called routine returned to
If the called routine
storage protect key of
error return address) fields.
the fields
If this action is taken by the called routine, then
these fields are exactly as they were when
particular
2-32