CWI to the heap services
- Routines for process-level heap storage (acquisition and release)
- Routines for region-level heap storage interface.
- Routines using a parameter list (PLIST) interface. Call these
CWI interfaces as follows (xxxx has the appropriate
offset value listed in Table 1):
L R12,A(CAA) Get the address of CAA in R12 L R15,CEECAACELV-CEECAA(,R12) L R15,xxxx(,R15) BALR R14,R15
Table 1 lists the interfaces and their corresponding callable services, which are described in more detail in the z/OS Language Environment Programming Guide. In each case, the parameter list for the callable service also applies to the CWI.Table 1. Routines using a parameter list interface CWI Name Description Callable Service Decimal Offset CEEVGTST Allocate storage CEEGTST 144 CEEVFRST Free storage CEEFRST 132 CEEVCRHP Create a new heap CEECRHP 164 CEEVDSHP Discard heap CEEDSHP 168 CEEVCZST Reallocate storage CEECZST 2820 CEEVGTSB Allocate storage unconditionally below 16 MB None 2936
Member-language intrinsic functions such as malloc must generate a call to a member-language stub routine. The stub routine, in turn, must call the corresponding Language Environment service (for example, CEEVGTST with heap-ID 0) to allocate the heap storage.
Member-language control blocks should be allocated in the private Language Environment/language below heap only if they must reside below the 16 MB line. Most other internal control blocks should be allocated in the private Language Environment/language anywhere heap. The heap-IDs of both the Language Environment/language below heap and Language Environment/language anywhere heap are stored in the enclave data block (EDB) for easy access, but these heap-IDs are not exposed to application code.