z/OS MVS Programming: Assembler Services Reference ABE-HSP
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


CSRPRFR — Return a cell to a cell pool (register interface)

z/OS MVS Programming: Assembler Services Reference ABE-HSP
SA23-1369-00

Description

Call the CSRPRFR cell pool service to return an allocated cell to a cell pool using the register interface, if your program cannot obtain storage for a parameter list. (The CSRPRFR1 service provides the same function with slightly enhanced performance.)

Environment

The requirements for the caller are:

Environmental factor Requirement
Minimum authorization: Problem state with PSW key 8-15
Dispatchable unit mode: Task or SRB
Cross memory mode: Any PASN, any HASN, any SASN.
AMODE: 24- or 31-bit addressing mode. Nucleus-resident code must be in 31-bit addressing mode when calling the service.
ASC mode: Primary or AR mode. (If the anchor and the extents are located in a data space, the caller must be in AR mode.)
Interrupt status: Enabled or disabled for I/O and external interrupts
Locks: The caller may hold locks, but is not required to hold any.
Control parameters: None.

Programming requirements

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
*
*

Restrictions

None.

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
AR 1
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 freed.
GPR 1
The anchor address.

Output register information

When control returns to the caller, the GPRs contain:
Register
Contents
0-1
Used as work registers 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 work registers by the system
2-14
Unchanged
15
Used as a work register 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.

Performance implications

None.

Syntax

Write the call as shown on the syntax diagram.

Syntax Description

CALL CSRPRFR
 

 

ABEND codes

None.

Return and reason codes

When the CSRPRFR service returns control to your program, GPR 15 contains one of the following return codes:

Hexadecimal Return Code Decimal Return Code Meaning and Action
00 00 Meaning: The operation was successful.

Action: None.

04 04 Meaning: 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 28 Meaning: 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 84 Meaning: 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 88 Meaning: 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 100 Meaning: 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 104 Meaning: 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 116 Meaning: 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.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014