CSLSCBFR: buffer return request

The CSLSCBFR request releases the storage that the Structured Call Interface (SCI) allocated for an IMSplex member. This storage is allocated to receive either an input message sent from another IMSplex member with the CSLSCMSG request, or an output parameter generated from a CSLSCRQS request.

Another macro can invoke the CSLSCRQS request as part of the code generated by the macro which, in turn, can return an SCI data type. The storage allocated for these parameters must be released with the CSLSCBFR macro. The CSLSCQRY macro is an example of an SCI macro that does this. The OUTPUT parameter specifies the address in storage to receive the address of the buffer that contains the output from the CSLSCQRY macro. Release this storage by using the CSLSCBFR request.

Syntax

DSECT syntax

Use the DSECT function of a CSLSCBFR request to include equate (EQU) statements in your program for the CSLSCBFR parameter list length and the CSLSCBFR request return and reason codes.

Read syntax diagramSkip visual syntax diagramCSLSCBFR FUNC=DSECT

RELEASE syntax

Use the RELEASE function of the CSLSCBFR request to release an SCI message buffer or SCI data type buffer. The SCI data type buffer is used for selected output parameters of the CSLSCRQS request for which SCI allocates storage.

Read syntax diagramSkip visual syntax diagramCSLSCBFRFUNC=RELEASEPARM= parmSCITOKEN= scitokenBUFFER= bufferBUFFERPTR= bufferRETCODE= returncodeRSNCODE= reasoncode

For messages generated from a CSLSCMSG request, the buffer address is the address of the member parameter list that is specified to the member input exit in the INXP_MBRPLPTR field in the input exit parameter list.

For a response generated from a CSLSCRQS request that uses an SCI data type buffer, the storage is allocated when the request is returned to the IMSplex member that initiated the original request. The buffer address is the address of this storage, which is returned in the field specified by the member on the request.

After the CSLSCBFR request is complete, the storage contained in the message buffer or request response is no longer accessible by the IMSplex member.

For non-authorized members, the storage must be released from a TCB that is under the JOBSTEP TCB from which the SCI registration call was made. The release fails if it is done from a TCB that is not under the registered JOBSTEP TCB.

Parameters

BUFFER=symbol
BUFFER=(r1-r12)
4-byte parameter that contains the address of a buffer that is to be released.

Either BUFFER or BUFFERPTR is required.

BUFFERPTR=symbol
BUFFERPTR=(r1-r12)
4-byte parameter that contains the address of a word in storage that contains the address of the buffer that is to be released.

Either BUFFER or BUFFERPTR is required.

PARM=symbol
PARM=(r1-r12)
Specifies the CSLSCBFR parameter list. The length of the parameter list must be equal to the parameter list length EQU value defined by SBFR_PARMLN.
RETCODE=symbol
RETCODE=(r1-r12)
Specifies a 4-byte field to receive the return code on output. The SCI return codes are defined in CSLSRR. Possible return codes for CSLSCBFR are described in the following table.
RSNCODE=symbol
RSNCODE=(r1-r12)
Specifies a 4-byte field to receive the reason code on output. The SCI reason codes are defined in CSLSRR. Possible reason codes for CSLSCBFR are described in the following table.
SCITOKEN=symbol
SCITOKEN=(r1-r12)
Specifies a 16-byte field containing the SCITOKEN. This token uniquely identifies this IMSplex member's connection to SCI. The SCI token was returned by a successful CSLSCREG FUNC=REGISTER request.

Return and reason codes

The following table lists the return and reason codes that can be returned on a CSLSCBFR macro request.

Table 1. CSLSCBFR request return and reason codes
Return code Reason code Meaning
X'00000000' X'00000000' Request completed successfully.
X'01000008' X'00002014' The buffer being released is not an SCI buffer.
  X'00002018' Invalid SCI token.
  X'00002038' Parameter list version is invalid.
  X'00002054' The buffer being released is not an allocated buffer.
X'01000010' X'00004FFF' Function is not supported.
X'01000014' X'00005000' An SCI internal error occurred.
  X'00005074' Buffer prefix is damaged on a CSLSCBFR call.
  X'00005078' STORAGE RELEASE failed for SCI buffer on a CSLSCBFR call.
  X'00005500' An abend occurred during CSLSCBFR processing.