CEEYDSAF — find the previous DSA

CEEYDSAF is used to identify the DSA prior to the passed DSA. It requires that the DSA used as input be a valid OS stackframe or an XPLINK stack frame. It also requires that the stack format be passed so it uses the proper unwind technique.

Recommendation: For performance reasons, whenever possible, the DSA format should be passed to this service instead of determining it dynamically.

Syntax

void CEEYDSAF (dsa_in, dsa_prev, dsa_format,(physical), (ph_callee), (ph_callee_dsa_format), (fc))
POINTER       *dsa_in;
POINTER       *dsa_prev;
INT4          *dsa_format;
INT4          *physical;
POINTER       *ph_callee;
INT4          *ph_callee_dsa_format;
FEED_BACK     *fc;
CEEYDSAF
From a non-XPLINK routine, call this CWI interface as follows:
L     R15,CEECAALEOV-CEECAA(,R12)   Address of CAA in R12
L     R15,0(,R15)
BALR  R14,R15
dsa_in (input)
Address of an OS or XPLINK format DSA.
dsa_prev (output)
Address of the OS or XPLINK format DSA behind dsa_in.
dsa_format (input/output)
Format of DSA:
0
OS
1
XPLINK
-1
The CWI determines the dsa_format . On input, it pertains to the format of the DSA of the dsa_in parameter. On output, it pertains to the format of the returned DSA in the dsa_prev parameter. The -1 indicates the CWI will attempt to determine the format of the passed DSA first. In all cases, the DSA format returned will be for the DSA returned by the service in dsa_prev.
physical (input/optional)
When physical = 1, physical unwinding requested. This means library-injected and XPLINK transitional stack frames are to be skipped over.
ph_callee (output/optional)
This parameter is designed to be used with logical unwinding. It provides a pointer to the stack frame physically located "in front" of the DSA returned as the previous logical. If no transitionals or library-injected DSAs are present, this is simply the DSA passed as input. If a transitional or an injected DSA is present, this is a pointer to it.
ph_callee_dsa_format (output)
Format of DSA of Physical Callee : 0 = OS 1 = XPLINK Used with the ph_callee parameter, this is the DSA format of the returned callee.
fc (output/optional)
The parameter in which the callable service feedback code is placed. The following conditions can result from this service.
Condition  
CEE000 Severity 0
Msg_No n/a
Message The service completed successfully
CEE3EQ Severity 2
Msg_No 3546
Message An error occurred while attempting to find the previous DSA.
CEE3ER Severity 2
Msg_No 3547
Message The physical callee DSA was requested and the physical callee format was not.
CEE3ES Severity 2
Msg_No 3548
Message The callable service was passed a DSA format of -1 and was unable to determine the format of the passed DSA.