CALL CSRPRFR (Return a Cell to a Cell Pool - Register Interface)

The CALL CSRPRFR cell pool service is used to return an allocated cell to the cell pool using the register interface, if your program cannot obtain storage for a parameter list.

Format

Read syntax diagramSkip visual syntax diagramname CALL CSRPRFR

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.)

Input Register Information

Before calling the CSRPRFR service, the caller must ensure that the following access registers (ARs) and general purpose registers (GPRs) contain the specified information:
Register Contents
AR1 The ALET used to access all the cell storage areas. Specify 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, CSRPRFR ignores the value.
GPR 0 The address of the cell you want to be freed.
GPR 1 The anchor address.

Output Register Information

When control returns to the caller, the GPRs contain:
Register Contents
0-1 Used as a work register by the system
2-13 Unchanged
14 Used as a work register by the system
15 Return code
When control returns to the caller, the ARs contain:
Register Contents
0-1 Used as a work register by the system
2-14 Unchanged
15 Used as a work register by the system

Return Codes in Register 15

00
The operation was successful.
04
The last cell has been returned to an inactive extent.

Action: None required. However, you might want to take some action depending on your application.

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.

54
Program error. The cell address is not valid.
Action: Investigate the following possible causes:
  • The input cell address does not point to the beginning of a cell.
  • The cell is not in the cell pool specified by the anchor address.
58
Program error. Either you have already returned the cell or you never allocated it.

Action: Check to see if your program contains a logic error that caused this situation to occur.

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.