DBRC release buffer request (RELBUF)

You can use the DBRC release buffer request (DSPAPI FUNC=RELBUF) to release storage that was acquired as a result of DBRC query, command, authorization, and unauthorization requests.

Each request returns a chain of one or more blocks containing the requested information. It is the caller's responsibility to ensure that the storage DBRC allocated for these blocks is freed.

Syntax for the RELBUF request

Read syntax diagramSkip visual syntax diagramnameDSPAPIFUNC=RELBUFTOKEN= addressBUFFER= bufferMF=SMF=(S, list)MF=(L, list)MF=(M, list,COMPLETE,NOCHECK)MF=(E, list,COMPLETE,NOCHECK)RETCODE= returncodeRSNCODE= reasoncodeVERSION=2.0VERSION= number

Parameters for the RELBUF request

name
Optional symbol you can specify. If used, begins in column 1.
TOKEN=address | (2 - 12)
Required parameter that specifies the address of a 4-byte field that was returned on the FUNC=STARTDBRC request.
BUFFER=buffer | (2 - 12)
Specifies a field containing the address of the first block of a chain of one or more information blocks to release. This storage was acquired by DBRC in order to satisfy another DBRC request.
RETCODE=returncode | (2 - 12)
Specifies a place in storage to receive the return code. If specified as a symbol, the symbol must be the label of a word of storage. If specified as a register, the register must contain the address of a word of storage. If not specified, the return code is placed in register 15.
RSNCODE=reasoncode | (2 - 12)
Specifies a place in storage to receive the reason code. If specified as a symbol, the symbol must be the label of a word of storage. If specified as a register, the register must contain the address of a word of storage. If not specified, the reason code is placed in register 0.
MF=S | L | M | E
Specifies the macro form of the request.
VERSION=2.0 | number
Specifies the version number of the parameter list to be generated by this request.

To use the parameters associated with a version, you must specify the number of that version or a later version. If you specify an earlier version level, the parameter is not accepted for processing and an error message is issued at assembly time. If parameters have a version dependency, the parameter descriptions with each request type identify the version number required.

Return and reason codes for RELBUF

Table 1. Return and reason codes for RELBUF
Code type Return codes Reason codes Meaning
  X'00000000' X'00000000' Request completed successfully.
Partial success X'00000004' X'D9000001' There was no storage to free. An address of zero was passed in the BUFFER parameter.
Severe error X'0000000C' X'C9000001' Invalid TOKEN. The TOKEN block passed to the API is not recognized as a TOKEN created by a FUNC=STARTDBRC call.
  X'0000000C' X'C900000A' The TCB address is not the same as the TCB address under which the STARTDBRC request was issued.
Storage error X'00000028' X'D9100001' An error occurred attempting to release storage.
Parameter error X'00000030' X'C9000001' Parameter error. The function (FUNC) specified in the parameter list passed to the API is invalid.
  X'00000030' X'C9000002' Invalid TOKEN field address. The address of the field containing the API TOKEN failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000003' Invalid RETCODE field address. The address of the field to contain the API RETCODE failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000004' Invalid RSNCODE field address. The address of the field to contain the API RSNCODE failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000007' Invalid BUFFER address. The address of the BUFFER to be released failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'D9100001' The header of a storage block to be freed is invalid.
  X'00000030' X'D9100002' The length of a storage block to be freed is not greater than zero.