CALL CSRPEXP (Expand A Cell Pool)

The CALL CSRPEXP cell pool service is used to:
  • Add an extent to the cell pool
  • Assign a number to the extent
  • Optionally, establish a connection between the extent and cell storage
  • Optionally, make the cell storage available for allocation.
Note: If you are reusing an extent, use CSRPCON and CSRPACT instead of CSRPEXP.

If you specify zero for the cell storage size, CSRPEXP adds an extent to the cell pool, but keeps it in a disconnected state. When you specify the extent size, allow 128 bytes plus one byte per eight cells of cell storage. CSRPEXP allocates cells contiguously, starting at the address you specify. If you specify zero for the area length, CSRPEXP ignores the area address.

Format

Read syntax diagramSkip visual syntax diagramname CALL CSRPEXP,( cntl_alet, anchor_addr, extent_addr, extent_size, area_addr, area_size, extent_num, return_code)

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.
extent_addr
Specifies the variable containing the address of the extent.
extent_size
Specifies the variable containing the size of the extent.
area_addr
Specifies the variable containing the starting address of the cell storage area. The starting address of this area must be consistent with any boundary requirements that you might have.
area_size
Specifies the variable containing the size (binary or hexadecimal) of the storage area for the cells.
extent_num
When CSRPEXP completes, the variable specifying extent_num contains the number of the extent to be connected. You use this number on subsequent CALLs.
return_code
When CSRPEXP completes, the variable specifying return_code contains the return code.

Return Codes in Register 15

00
The operation was successful.
0C
Program error. There are too many extents in the cell pool.

Action: Check to see if your program contains a logic error that caused the limit of 65,536 extents per cell pool to be exceeded. If your program works as expected, consider using a larger cell pool.

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.

28
Program error. The service could not use the extent address.

Action: Make sure that the extent area does not overlap the anchor area. Also, make sure that the upper address of the extent does not exceed the valid address range.

2C
Program error. The extent length is not valid.

Action: Correct the extent length. It cannot be less than 129 bytes.

48
Program error. The cell area length is not valid.

Action: Correct the cell area length. The cell area size cannot be less than the cell size.

4C
Program error. The service could not use the cell area address.

Action: If the cell area is in a data space, make sure that the cell area is completely within the data space.

50
Program error. The cell area is too large.

Action: Specify a larger extent size or a smaller cell area size.

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.

70
Program error or system error. An anchor has been overlaid.

Action: Check to see if your program inadvertently overlaid the anchor area.

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.