If this action is taken by the called routine, then the SVCTR1CE facility may print misleading information, since SVCTRACE assumes that
these fields are exactly as they were whenDKSITS was first entered.
Whenever anSVC call is made, DKSITS 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. When the SVC-called routine returns, the save areas are not released, but are kept for the next At the completion Qf each command. all SYC save areas allocated by that command are released.
TheSystem Save Area is used by DMSITS to save the value of the SVC old PSi at the time of the SVC call, the calling routine's registers at
the time of the call, and any other necessary control information.Since SVC calls can be nested, there can be several of these save areas
at onetime. The system save area is allocated in protected free
storage.
The user save area contains 12 doublewords (24 words), allocated in
unprotected free storage.DMSITS does not use this area at all. but simply passes a pointer to this area (via register 13.) The called
routine can use this area as atemporary work area, or as a register
save area. There is one user save area for eachsystem save area. The USAYEPTR field in the system save area points to the user save area.
Theexact format of the system save area can be found in the Data Areas and Control Block Log!£. The most important fields, and their-uses, are as-follows:--- Field CiLLER CALLEE CODE OLDPSW NRKRET ERRET EGPRS EFPRS (Fullword) The address of the SVC instruction that resulted in
this call.
(Doubleword) Eight-byte symbolic name of the called routine.
ForOS and user-handled SVC calls, this field contains a
character string of the formSVC nnn, where nnn is the SYC number in decimal.
(Halfword) ForSVC 203, this field contains the halfword code
following theSVC instruction line.
(Doubleword) TheSVC old PSi at the time that DKSITS vas
entered.
(Fullword) The address of the calling routine towhich control
is to be passed in the case of anormal return fro. the called
routine.
(Fullword) The address of the calling routine to which control
is to he passed in the case of an error returnfrom the called
routine.
(16 Fullwords, separately labeledEGPRO, EGPR1, EGPR2, EGPR3, ••• , EGPR15) The entry registers. The contents of the
general registers at entry toDKSITS are stored in these
fields.
(4 Doublewords, separately labeledEFPRO, EFPR2, EFPR4, EFPR6) The entry floating-point registers. The contents of the
floating-point registers at entry toDKSITS are stored in
these fields.
266IBK VM/370 System Programmer's Guide
these fields are exactly as they were when
Whenever an
particular
The
the time of the call, and any other necessary control information.
at one
storage.
The user save area contains 12 doublewords (24 words), allocated in
unprotected free storage.
routine can use this area as a
save area. There is one user save area for each
The
this call.
(Doubleword) Eight-byte symbolic name of the called routine.
For
character string of the form
(Halfword) For
following the
(Doubleword) The
entered.
(Fullword) The address of the calling routine to
is to be passed in the case of a
routine.
(Fullword) The address of the calling routine to which control
is to he passed in the case of an error return
routine.
(16 Fullwords, separately labeled
general registers at entry to
fields.
(4 Doublewords, separately labeled
floating-point registers at entry to
these fields.
266