CALL CSRPxxx (Call Cell Pool Services) Macro

The CALL CSRPxxx macro manages so-called cell pools, which are areas of virtual storage in address spaces or data spaces. A cell pool is subdivided into fixed-sized areas of storage called cells.

For detailed guide information about how to handle cell pool services, refer to Supported Addressing Modes, Data Spaces and Virtual Disks.

The CALL CSRPxxx macro supports the following main functions:

Read syntax diagramSkip visual syntax diagramname CALL CSRPBLDCSRPEXPCSRPCONCSRPACTCSRPDACCSRPDISCSRPGETCSRPRGTCSRPFRECSRPRFRCSRPQPLCSRPQEXCSRPQCL, operands
CSRPBLD (For details refer to CALL CSRPBLD (Build A Cell Pool And Initialize An Anchor).)
Build a cell pool
CSRPEXP (For details refer to AVRLIST (Map GETVCE) Macro.)
Expand a cell pool by adding an extent
CSRPCON (For details refer to CALL CSRPCON (Connect Cell Storage to an Extent).)
Connect cell storage to an extent
CSRPACT (For details refer to CALL CSRPACT (Activate Previously Connected Storage).)
Activate previously connected storage
CSRPDAC (For details refer to CALL CSRPDAC (Deactivate an Extent).)
Deactivate an extent
CSRPDIS (For details refer to CALL CSRPDIS (Disconnect the Cell Storage for an Extent).)
Disconnect the cell storage for an extent
CSRPGET and CSRPRGT (For details refer to CALL CSRPGET (Allocate a Cell from a Cell Pool) and CALL CSRPRGT (Allocate a Cell from a Cell Pool - Register Interface).)
Allocate a cell from a cell pool
CSRPFRE and CSRPRFR (For details refer to CALL CSRPFRE (Return a Cell to a Cell Pool) and CALL CSRPRFR (Return a Cell to a Cell Pool - Register Interface).)
Return a cell to the cell pool
CSRPQPL (For details refer to CALL CSRPQPL (Query the Cell Pool).)
Query the cell pool
CSRPQEX (For details refer to CALL CSRPQEX (Query a Cell Pool Extent).)
Query a cell pool extent
CSRPQCL (For details refer to CALL CSRPQCL (Query a Cell).)
Query a cell

Control Parameters

All parameters must reside in a single address or data space, and must be addressable by the caller. They must be in the primary address space or in an address/data space that is addressable through a public entry on the caller 's dispatchable unit access list (DU-AL).

All variables must be A-type address constants.

Programming Requirements

If your program is in AR mode, issue the SYSSTATE macro with ASCENV=AR before you call the CSRPBLD service so the CALL macro can generate the correct code for AR mode.

Before you use cell pool services, you can optionally include the CSRCPASM macro to generate cell pool services equate (EQU) statements. CSRCPASM provides the following constants for use in your program:
*  Length of the cell pool anchor data area:
*
CSR_ANCHOR_LENGTH     EQU     64
*
*
*  Base length of the cell pool extent data area:
*
CSR_EXTENT_BASE       EQU     128
*
*
*  Length of the user-supplied pool name:
*
CSR_POOL_NAME_LEN     EQU     8
*
*

Input Register Information

Before issuing a CALL CSRPxxx macro, the caller does not must place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.

Output Register Information

When control returns to the caller, the general purpose registers (GPRs) contain:
Register Contents
0-1 Used by the system
2-13 Unchanged
14 Used by the system
15 Return code
When control returns to the caller, the access registers (ARs) contain:
Register Contents
0-1 Used by the system
2-14 Unchanged
15 Used by the system

Some callers depend on register contents remaining the same before and after issuing a service. If the system changes the contents of registers on which the caller depends, the caller must save them before issuing the service, and restore them after the system returns control.