The FDL$GENERATE routine produces an FDL specification and writes it to either an FDL file or a character string. Format FDL$GENERATE flags ,fab_pointer ,rab_pointer [,fdl_file_dst] [,fdl_file_resnam] [,fdl_str_dst] [,bad_blk_addr] [,retlen]
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
flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Flags (or masks) that control how the fdl_str_dst argument is interpreted and how errors are signaled. The flags argument is the address of a longword containing the control flags (or a mask). If you omit this argument or specify it as zero, no flags are set. The flags and their meanings are as follows: Flag Function FDL$V_FDL_ Interprets the fdl_str_dst argument as an FDL STRING specification in string form. By default, the fdl_str_dst argument is interpreted as the file name of an FDL file. FDL$V_FULL_ Includes the FDL attributes to describe all OUTPUT the bits and fields in the OpenVMS RMS control blocks, including run-time options. If this flag is set, every field is inspected before being written. By default, only the FDL attributes that describe permanent file attributes are included (producing a much shorter FDL specification). FDL$V_LONG_ Returns the FDL_FILE_RESNAME using the long NAMES result name from a long name access block (NAML). By default, the FDL_FILE_RESNAM is returned from the short fields of a name access block (NAM) and thus may have a generated specification. This flag is valid for OpenVMS Alpha only. FDL$V_SIGNAL Signals any error. By default, the status code is returned to the calling image. By default, an error status is returned rather than signaled. fab_pointer OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference RMS file access block (FAB). The fab_pointer argument is the address of a longword containing the address of a FAB. rab_pointer OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference RMS record access block (RAB). The rab_pointer argument is the address of a longword containing the address of a RAB. fdl_file_dst OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor Name of the FDL file to be created. The fdl_file_dst argument is the address of a character-string descriptor containing the file name of the FDL file to be created. If the FDL$V_FDL_STRING flag is set in the flags argument, this argument is ignored; otherwise, it is required. The FDL specification is written to the file named in this argument. fdl_file_resnam OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor Resultant name of the FDL file created. The fdl_file_resnam argument is the address of a variable character-string descriptor that receives the resultant name of the FDL file created (if FDL$GENERATE is directed to create an FDL file). fdl_str_dst OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor-fixed-length string descriptor FDL specification. The fdl_str_dst argument is the address of a variable character string descriptor that receives the FDL specification created. If the FDL$V_FDL_STRING bit is set in the flags argument, this argument is required; otherwise, it is ignored. bad_blk_addr OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Address of an invalid RMS control block. The bad_blk_addr argument is the address of a longword that receives the address of an invalid control block (a fatal error). If an invalid control block is detected, this argument is returned; otherwise, it is ignored. retlen OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference Number of characters received in either the fdl_file_resnam or the fdl_str_dst argument. The retlen argument is the address of a longword that receives this number.
3 – Condition Values Returned
SS$_NORMAL Normal successful completion. FDL$_INVBLK Invalid block. RMS$_ACT File activity precludes operation. RMS$_CONTROLC Operation completed under Ctrl/C. RMS$_CONTROLO Output completed under Ctrl/O. RMS$_CONTROLY Operation completed under Ctrl/Y. RMS$_DNR Device not ready or mounted. RMS$_EXT ACP file extend failed. RMS$_OK_ALK Record already locked. RMS$_OK_DUP Record inserted had duplicate key. RMS$_OK_IDX Index update error occurred. RMS$_PENDING Asynchronous operation pending completion. RMS$_PRV Insufficient privilege or file protection violation. RMS$_REX Record already exists. RMS$_RLK Target record currently locked by another stream. RMS$_RSA Record stream currently active. RMS$_WLK Device currently write locked. SS$_ACCVIO Access violation. STR$_FATINERR Fatal internal error in run-time library. STR$_ILLSTRCLA Illegal string class. STR$_INSVIRMEM Insufficient virtual memory.