The FDL$RELEASE routine deallocates the virtual memory used by the OpenVMS RMS control blocks created by FDL$PARSE. You must use FDL$PARSE to populate the control blocks if you plan to deallocate memory later with FDL$RELEASE. Format FDL$RELEASE [fab_pointer] [,rab_pointer] [,flags] [,badblk_addr]
1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value Longword condition value. Most utility routines return a condition value in R0. Condition values that this routine can return are listed under Condition Values Returned.
2 – Arguments
fab_pointer OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference File access block (FAB) to be deallocated using the LIB$FREE_VM routine. The fab_pointer argument is the address of a longword containing the address of the FAB. The FAB must be the same one returned by the FDL$PARSE routine. Any name blocks (NAMs) and extended attribute blocks (XABs) connected to the FAB are also released. If you omit this argument or specify it as zero, the FAB (and any associated NAMs and XABs) is not released. rab_pointer OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference Record access block (RAB) to be deallocated using the LIB$FREE_ VM system service. The rab_pointer argument is the address of a longword containing the address of the RAB. The address of the RAB must be the same one returned by the FDL$PARSE routine. Any XABs connected to the RAB are also released. If you omit this argument or specify it as zero, the RAB (and any associated XABs) is not released. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Flag (or mask) that controls how errors are signaled. The flags argument is the address of a longword containing the control flag (or a mask). If you omit this argument or specify it as zero, no flag is set. The flag is defined as follows: FDL$V_ Signals any error. By default, the status code is SIGNAL returned to the calling image. FDL$V_LONG_ Deallocates any virtual memory used for a long NAMES name access block (NAML) created by the FDL$PARSE routine. This flag is valid for OpenVMS Alpha only. badblk_addr OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Address of an invalid RMS control block. The badblk_addr argument is the address of a longword that receives the address of an invalid control block. If an invalid control block (a fatal error) is detected, this argument is returned; otherwise, it is ignored.
3 – Condition Values Returned
SS$_NORMAL Normal successful completion. FDL$_INVBLK Invalid RMS control block at virtual address 'hex-offset'. LIB$_BADBLOADR Bad block address. RMS$_ACT File activity precludes operation. RMS$_RNL Record not locked. RMS$_RSA Record stream currently active. SS$_ACCVIO Access violation.