VMS Help  —  System Services, $CREATE BUFOBJ 64 (Alpha and Integrity servers)
    On Alpha and Integrity server systems, creates a buffer object
    out of a range of pages.

    This service accepts 64-bit addresses.

    Format

      SYS$CREATE_BUFOBJ_64  start_va_64 ,length_64 ,acmode ,flags

                            ,return_va_64 ,return_length_64

                            ,buffer_handle_64

    C Prototype

      int sys$create_bufobj_64  (void *start_va_64, unsigned

                                __int64 length_64, unsigned int

                                acmode, unsigned int flags, void

                                *(*(return_va_64)), unsigned __int64

                                *return_length_64, struct _generic_64

                                *buffer_handle_64);

1  –  Arguments

 start_va_64

    OpenVMS usage:address
    type:         quadword address
    access:       read only
    mechanism:    by value
    Starting virtual address of the pages to be included in the
    buffer object. The specified virtual address will be rounded
    down to a CPU-specific page boundary.

    The virtual address space must already exist.

 length_64

    OpenVMS usage:byte count
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by value
    Length of the virtual address space to be included in the buffer
    object. The specified length will be rounded up to a CPU-specific
    page boundary such that it includes all CPU-specific pages in the
    requested range.

 acmode

    OpenVMS usage:access_mode
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Access mode on behalf of which the request is being made. The
    acmode argument is a longword containing the access mode.

    The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in
    SYS$STARLET_C.TLB define the following symbols and their values
    for the four access modes:

    Value      Symbolic Name      Access Mode

    0          PSL$C_KERNEL       Kernel
    1          PSL$C_EXEC         Executive
    2          PSL$C_SUPER        Supervisor
    3          PSL$C_USER         User

    The most privileged access mode used is the access mode of
    the caller. For the $CREATE_BUFOBJ_64 service to complete
    successfully, the resultant access mode must be equal to or more
    privileged than the access mode already associated with the pages
    in the specified input range.

 flags

    OpenVMS usage:mask_longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Flag mask specifying the request options. The flags argument is a
    longword bit vector in which each bit corresponds to a flag. The
    $CBODEF macro in STARLET.MLB and CBODEF.H file in SYS$STARLET_
    C.TLB define a symbolic name for each flag.

    The following table describes each flag that is valid for the
    $CREATE_BUFOBJ_64 service:

    Flag          Value  Description

    CBO$M_RETSVA  1      If set, returns the system virtual address
                         in the return_va_64 argument instead of the
                         process virtual address range. (Valid for
                         inner mode callers only.)
    CBO$M_SVA_32  4      If set, creates the buffer object window
                         in 32-bit S0/S1 space. (By default, this
                         service creates the window in 64-bit S2
                         space.)

 return_va_64

    OpenVMS usage:address
    type:         quadword address
    access:       write only
    mechanism:    by 32- or 64-bit reference
    The lowest process virtual address of the pages in the buffer
    object. The return_va_64 argument is the 32- or 64-bit virtual
    address of a naturally aligned quadword into which the service
    returns the virtual address.

 return_length_64

    OpenVMS usage:byte count
    type:         quadword (unsigned)
    access:       write only
    mechanism:    by 32- or 64-bit reference
    The length of the virtual address range in the buffer object. The
    return_length_64 argument is the 32- or 64-bit virtual address of
    a naturally aligned quadword into which the service returns the
    length of the virtual address range in bytes.

 buffer_handle_64

    OpenVMS usage:handle
    type:         quadword (unsigned)
    access:       write only
    mechanism:    by 32- or 64-bit reference
    The 32- or 64-bit virtual address of a naturally aligned
    quadword into which a buffer handle is returned to be used when
    referencing the created buffer object.
Close Help