CEEVSSEG — return the stack segment bounds

The Stack Segment Bounds CWI returns the beginning point and the ending point of a Language Environment stack segment given an address within the bounds of that segment.

Syntax

void (*CEECELVVSSEG) (ss_ptr, ss_type, ss_start, ss_end, ss_chain, [fc])
POINTER      *ss_ptr;
INT4         *ss_type;
POINTER      *ss_start;
INT4         *ss_end;
POINTER      *ss_chain;
FEED_BACK    *fc;
CEECELVVSSEG
A field in Language Environment LIBVEC that points to the CEEVSSEG CWI. Call this CWI interface as follows:
L     R12,A(CAA)            Get the address of CAA in R12
L     R15,CEECAACELV-CEECAA(,R12)
L     R15,3372(,R15)
BALR  R14,R15
ss_ptr (input)
An address within the bounds of a user or library stack segment.
ss_type (output)
A fullword binary integer representing the type of Language Environment stack segment containing ss_ptr. If fc is CEE3MO, the ss_type value is undefined. The possible values for ss_ptr are:
1
User stack
2
Library stack
3
Downward-growing stack
ss_start (output)
A pointer to the beginning of the stack segment, containing ss_ptr. If fc is CEE3MO, the ss_start value is undefined.
ss_end (output)
A pointer to the end of usable stack segment, containing ss_ptr. If fc is CEE3MO, the ss_end value is undefined.
ss_chain (output)
A pointer to the next stack segment. If ss_ptr points to the last stack segment, ss_chain is set to 0. If fc is CEE3MO, the ss_chain value is undefined.
fc (output/optional)
The resulting feedback code. The following conditions can result from this service:
Condition  
CEE000 Severity 0
Msg_No N/A
Message The service completed successfully.
CEE3MO Severity 3
Msg_No 3800
Message The address passed to the stack segment service is not within any Language Environment stack segment.
Explanation The address passed to the stack segment bounds service is not within any currently allocated Language Environment stack segment.
Programmer Response This is an internal problem. Contact your service representative.
System Action The bounds, segment type, and chain are undefined.
Usage Notes:
  1. This service is intended for members to use to access stack extensions when the NAB field in a DSA indicates a stack frame has been extended beyond the current stack segment boundary.
  2. The ss_ptr value is usually a DSA or NAB address. CEEVSSEG searches both the library and user stack for the segment containing this address.
  3. The sequence of stack segments that follow the segment that contains ss_ptr can be located by repeatedly passing the value of ss_chain returned by the previous call to CEEVSSEG into another call to CEEVSSEG and obtaining new values of ss_type, ss_start, ss_end, and ss_chain.