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