CEEVGTSB — unconditional get heap below

The CEEVGTSB CWI service obtains enclave heap storage below the 16 MB line and, if unsuccessful, CEEVGTSB signals a condition when the feedback code is omitted.

Syntax

void CEEVGTSB (heap_id, size, address, [fc])
INT         *heap_id;
INT         *size;
POINTER     *address;
FEEDBACK    *fc;
CEEVGTSB
Call this CWI interface as follows:
L     R12,A(CAA)            Get the address of CAA in R12
L     R15,CEECAACELV-CEECAA(,R12)
L     R15,2936(,R15)
BALR  R14,R15
heap_id (input)
A token denoting the heap in which the storage is allocated. If heap_id is not valid, the address is undefined and CEEVGTSB signals a condition.
size (input)
A number representing the amount of storage to be allocated. The amount of storage obtained is rounded to the next higher multiple of 8 bytes. Storage is always allocated below the line on a doubleword boundary. If the specified amount cannot be obtained, a condition is signaled.
address (output)
The machine address of the first byte of allocated storage.
fc (output)
The resulting feedback code. The following conditions can result from this service:
Condition Description type Description value
CEE000 Severity 0
CEE000 Msg_No N/A
CEE000 Message The service completed successfully.
CEE0P2 Severity 4
CEE0P2 Msg_No 0802
CEE0P2 Message Storage headers are damaged.
CEE0P3 Severity 3
CEE0P3 Msg_No 0803
CEE0P3 Message The heap identifier heap_id did not match any existing heap.
CEE0P8 Severity 3
CEE0P8 Msg_No 0808
CEE0P8 Message The size was not a positive number.
CEE0PD Severity 3
CEE0PD Msg_No 0813
CEE0PD Message The request was larger than the storage available.
CEE3JN Severity 0
CEE3JN Msg_No 3704
CEE3JN Message Expected data at address address: data
CEE3JO Severity 0
CEE3JO Msg_No 3705
CEE3JO Message Pointer at address should point to a valid controlblock