VMS Help  —  FDL Routines, 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]

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

 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 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. 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.

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.
Close Help