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:
- 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.
* 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
Register | Contents |
---|---|
0-1 | Used by the system |
2-13 | Unchanged |
14 | Used by the system |
15 | Return code |
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.