CEEVUHCR — create a heap using user-provided storage

The CEEVUHCR CWI creates a heap out of storage that is provided by the caller. The heap is divided into cell pools based on the information provided in the cellpool_attrib_table. Up to 6 cell pools can be created within the heap. Note that this is a fixed-size heap; when storage within a given cell pool is exhausted, no additional storage will be allocated. CEEVUHCR returns a heap token that is used to identify the heap on subsequent user-created heap CWI calls, such as CEEVUHGT, CEEVUHFR, and CEEVUHRP.

Syntax

void CEEVUHCR (block, size, cellpool_attrib_table, heap_token, rsvd1, rsvd2, rsvd3, rsvd4, [fc] )
POINTER     *block;
INT4        *size;
POINTER     *cellpool_attrib_table;
POINTER     *heap_token;
POINTER     *rsvd1;
POINTER     *rsvd2;
POINTER     *rsvd3;
POINTER     *rsvd4;,
FEED_BACK   *fc;
CEEVUHCR
Call this CWI interface as follows:
L     R15,CEECAACELV-CEECAA(,R12)
L     R15,4060(,R15)
BALR  R14,R15
block (input)
A pointer to the storage which is to be used for the heap.
size (input)
The size of the block of storage. Note that Language Environment reserves approximately 328 bytes of this storage for use in allocating heap management control blocks. Additional storage is reserved if storage report usage statistics are being collected for the heap. The amount of this storage is related to the largest cell size and the granularity of the statistics, and is calculated as: storage amount = ((largestcellsize+granularity-1)/granularity)*4.
cellpool_attrib_table (input)
A pointer to a structure describing the attributes of the cell pools to be created by CEEVUHCR.

The first field of the structure, number_of_pools, indicates the number of cell pools to be created. Up to 6 cell pools can be created in the heap.

The second field of the structure, granularity, indicates the granularity to which storage usage statistics are to be collected. This value must be zero, or a power of 2 greater than or equal to 8. If the value is zero, then statistics are not collected.

Following these words are pairs of words describing the attributes of each cell pool in the heap. The first field in the pair, size, is the size of the cell in the cell pool. The cell size must be a multiple of 8 and greater than or equal to 8. Note that Language Environment adds an additional 8 bytes to the size of the cell for use in managing the cells. The second field in the pair, percentage, is the percentage of the total block size to be allocated for the cell pool.

heap_token (output)
A token representing the heap that was created.
rsvd1-rsvd4
Reserved for future use.
fc (output/optional)
The parameter into 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.
CEE0P7 Severity 3
Msg_No 0807
Message An input parameter to the CEEVUHCR CWI was not valid.