VMS Help
FDL Routines, FDL$PARSE
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
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]
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.
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.
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_ Interprets the default_fdl_desc argument
STRING 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.
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.
3 - 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.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.