CALL CSRPGET (Allocate a Cell from a Cell Pool)
The CALL CSRPGET cell pool service is used to allocate a cell from the cell pool. CSRPGET allocates cells from the lowest- to the highest-numbered active extents and - within each extent - from the lowest to the highest cell address. CSRPGET passes back to the calling program the address of the cell it allocated, but does not clear the cell storage to binary zeros.
Format
Requirements for the caller
- AMODE:
- 24 or 31 (System code must be in 31-bit addressing mode when calling the service. All input addresses must be valid 31-bit addresses.)
- RMODE:
- 24 or ANY
- ASC Mode:
- Primary or AR (If the anchor and the extents are located in a data space, the caller must be in AR mode.)
Parameters
- cntl_alet
- Specifies the variable containing the ALET that identifies the location of the anchor and extents. Initialize the ALET to 0 if your program is running in AR mode and the anchor and extents are in the primary address space. If your program is running in primary ASC mode, the value is ignored, but you must code the parameter anyway.
- anchor_addr
- Specifies the variable containing the address of the 64-byte anchor.
- cell_addr
- When CSRPGET completes, the variable specifying cell_addr contains the address of the cell that CSRPGET allocated.
- return_code
- When CSRPGET completes, the variable specifying return_code contains the return code.
Return Codes in Register 15
- 00
- The operation was successful.
- 08
- Program error. There were no available cells in the pool. More
than one program could be using the cell pool.
Action: Retry the request one or more times. If the problem persists, consider freeing existing cells or adding new cells to the cell pool, or both.
- 1C
- Program error. The anchor address is not valid.
Action: Check to see if your program passed the wrong anchor address or inadvertently overlaid the anchor area.
- 64
- Program error or system error. An extent chain was broken.
Action: Check to see if your program inadvertently overlaid an extent area. Make sure that no extent belongs to more than one cell pool.
- 68
- Program error or system error. An extent chain is circular.
Action: Check to see if your program inadvertently overlaid an extent area. Make sure that no extent belongs to more than one cell pool.
- 74
- Program error or system error. An extent has been overlaid.
Action: Check to see if your program inadvertently overlaid an extent area. Make sure that no extent belongs to more than one cell pool.