HP OpenVMS Systems Documentation

Content starts here

OpenVMS Utility Routines Manual


Previous Contents Index

See the description of the fdl_desc argument for details.

This argument allows you to specify default FDL attributes. In other words, FDL$CREATE processes the attributes specified in this argument unless you override them with the attributes you specify in the fdl_desc argument.

You can code the FDL defaults directly into your program, typically with an FDL specification in string form.


Description

FDL$CREATE calls the FDL$PARSE routine to parse the FDL specification. The FDL specification can be in a file or a character string.
Source of FDL Specification Advantages Disadvantages
FDL file Variability; for example, if the specification changes regularly, you can revise the file without revising the calling program. File must be in default directory.
Slower.
Character string You do not have to be concerned with locating a file. Program must be recoded to change FDL specification.
  Faster access.  

If the FDL specification is relatively simple and is not going to change, put the FDL specification in a character string as the fdl_desc argument to the call.

FDL$CREATE opens (creates) the specified RMS file and then closes it without putting any data in it.

FDL$CREATE does not create the output file if an error status is either returned or signaled.


Condition Values Returned

SS$_NORMAL Normal successful completion.
FDL$_ABKW Ambiguous keyword in statement number<CRLF> reference-text.
FDL$_ABPRIKW Ambiguous primary keyword in statement number<CRLF> reference-text.
FDL$_BADLOGIC Internal logic error detected.
FDL$_CLOSEIN Error closing filename as input.
FDL$_CLOSEOUT Error closing filename as output.
FDL$_CREATE Error creating filename.
FDL$_CREATED Filename created.
FDL$_CREATED_STM Filename created in stream format.
FDL$_FDLERROR Error parsing FDL file.
FDL$_ILL_ARG Wrong number of arguments.
FDL$_INSVIREM Insufficient virtual memory.
FDL$_INVBLK Invalid RMS control block at virtual address 'hex-offset'.
FDL$_MULPRI Multiple primary definition in statement number.
FDL$_OPENFDL Error opening filename.
FDL$_OPENIN Error opening filename as input.
FDL$_OPENOUT Error opening filename as output.
FDL$_OUTORDER Key or area primary defined out of order in statement number.
FDL$_READERR Error reading filename.
FDL$_RFLOC Unable to locate related file.
FDL$_SYNTAX Syntax error in statement number reference-text.
FDL$_UNPRIKW Unrecognized primary keyword in statement number<CRLF> reference-text.
FDL$_UNQUAKW Unrecognized qualifier keyword in statement number<CRLF> reference-text.
FDL$_UNSECKW Unrecognized secondary keyword in statement number<CRLF> reference-text.
FDL$_VALERR Specified value is out of legal range.
FDL$_VALPRI Value required on primary in statement number.
FDL$_WARNING Parsed with warnings.
FDL$_WRITEERR Error writing filename.
RMS$_ACT File activity precludes operation.
RMS$_CRE Ancillary control process (ACP) file create failed.
RMS$_CREATED File was created, not opened.
RMS$_DNF Directory not found.
RMS$_DNR Device not ready or not mounted.
RMS$_EXP File expiration date not yet reached.
RMS$_FEX File already exists, not superseded.
RMS$_FLK File currently locked by another user.
RMS$_PRV Insufficient privilege or file protection violation.
RMS$_SUPERSEDE Created file superseded existing version.
RMS$_WLK Device currently write locked.

FDL$GENERATE

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]


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.


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_STRING Interprets the fdl_str_dst argument as an FDL specification in string form. By default, the fdl_str_dst argument is interpreted as the file name of an FDL file.
FDL$V_FULL_OUTPUT Includes the FDL attributes to describe all 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_NAMES Returns the FDL_FILE_RESNAME using the long 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.

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.

FDL$PARSE

The FDL$PARSE routine parses an FDL specification, allocates OpenVMS RMS control blocks (FABs, RABs, or XABs), and fills in the relevant fields.

Format

FDL$PARSE fdl_desc ,fdl_fab_pointer ,fdl_rab_pointer [,flags] [,default_fdl_desc] [,stmnt_num]


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.


Arguments

fdl_desc


OpenVMS usage: char_string
type: character-coded text string
access: read only
mechanism: by descriptor---fixed-length string descriptor

Name of the FDL file or the actual FDL specification to be parsed. See the description of the fdl_desc argument for the FDL$CREATE routine for details.

fdl_fab_pointer


OpenVMS usage: address
type: longword (unsigned)
access: write only
mechanism: by reference

Address of an RMS file access block (FAB). The fdl_fab_pointer argument is the address of a longword that receives the address of the FAB. FDL$PARSE both allocates the FAB and fills in its relevant fields.

fdl_rab_pointer


OpenVMS usage: address
type: longword (unsigned)
access: write only
mechanism: by reference

Address of an RMS record access block (for VAX, this is the RAB; for Alpha, it is the RAB64). The fdl_rab_pointer argument is the address of a longword that receives the address of the RAB or RAB64. FDL$PARSE both allocates the RAB or RAB64 and fills in any fields designated in the FDL specification.

For Alpha, the 64-bit record access block (RAB64) consists of the traditional 32-bit RAB followed by some 64-bit fields. The RAB64 is automatically allocated for Alpha users, who can either use it as a RAB64 or overlay it with the 32-bit RAB definition and use it as a traditional 32-bit RAB.

flags


OpenVMS usage: mask_longword
type: longword (unsigned)
access: read only
mechanism: by reference

Flags (or masks) that control how the default_fdl_desc argument is interpreted and how errors are signaled. The flags argument is the address of a longword containing the control flags. 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_DEFAULT_STRING Interprets the default_fdl_desc argument as an FDL specification in string form. By default, the default_fdl_desc argument is interpreted as the file name of an FDL file.
FDL$V_FDL_STRING Interprets the fdl_desc argument as an FDL specification in string form. By default, the fdl_desc argument is interpreted as the file name of an FDL file.
FDL$V_LONG_NAMES Allocates and returns a long name access block (NAML) linked to the returned RMS file access block (FAB). The appropriate values are set in the NAML and FAB blocks so that the long file name fields of the NAML block will be used.

By default, a name block is not allocated and the file name fields of FAB are used.

If the FDL$V_LONG_NAMES flag is set, then the FDL$V_LONG_NAMES bit must also be set in the flags argument to the FDL$RELEASE routine to ensure that memory allocated for the NAML block is deallocated properly.

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.

default_fdl_desc


OpenVMS usage: char_string
type: character-coded text string
access: read only
mechanism: by descriptor---fixed-length string descriptor

The default_fdl_desc argument is the address of a character-string descriptor pointing to either the default FDL file or the default FDL specification. See the description of the fdl_desc argument for the FDL$CREATE routine for details.

This argument allows you to specify default FDL attributes. In other words, FDL$PARSE processes the attributes specified in this argument unless you override them with the attributes you specify in the fdl_desc argument.

You can code the FDL defaults directly into your program, typically with an FDL specification in string form.

stmnt_num


OpenVMS usage: longword_unsigned
type: longword (unsigned)
access: write only
mechanism: by reference

FDL statement number. The stmnt_num argument is the address of a longword that receives the FDL statement number. If the routine finishes successfully, the stmnt_num argument is the number of statements in the FDL specification. If the routine does not finish successfully, the stmnt_num argument receives the number of the statement that caused the error. Note that line numbers and statement numbers are not the same and that an FDL specification in string form has no "lines."

By default, an error status is returned rather than signaled.


Condition Values Returned

SS$_NORMAL Normal successful completion.
LIB$_BADBLOADR Bad block address.
LIB$_BADBLOSIZ Bad block size.
LIB$_INSVIRMEM Insufficient virtual memory.
RMS$_DNF Directory not found.
RMS$_DNR Device not ready or not mounted.
RMS$_WCC Invalid wildcard context (WCC) value.


Previous Next Contents Index