/sys$common/syshlp/helplib.hlb
System Services, $UPDSEC 64 (Alpha Only)

 *Conan The Librarian (sorry for the slow response - running on an old VAX)

    On Alpha systems, writes all pages (or only those pages modified
    by the current process) in an active private or global disk
    file section back into the section file on disk. One or more
    I/O requests are queued to perform the write operation.

    The $UPDSEC_64 service completes asynchronously. For synchronous
    completion, use the Update Global Section File on Disk and Wait
    ($UPDSEC_64W) service.

    This service accepts 64-bit addresses.

    Format

      SYS$UPDSEC_64  start_va_64 ,length_64 ,acmode ,updflg ,efn

                     ,iosa_64 ,return_va_64 ,return_length_64

                     [,astadr_64 [,astprm_64]]

    C Prototype

      int sys$updsec_64  (void *start_va_64, unsigned __int64

                         length_64, unsigned int acmode, unsigned

                         int updflg, unsigned int efn, struct _iosa

                         *iosa_64, void *(*(return_va_64)), unsigned

                         __int64 *return_length_64,...);

    Arguments

 start_va_64

    OpenVMS usage:address
    type:         quadword address
    access:       read only
    mechanism:    by value
    The starting virtual address of the pages to be written to the
    section file. The specified virtual address is rounded down to a
    CPU-specific page boundary.

 length_64

    OpenVMS usage:byte count
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by value
    Length of the virtual address range to be written to the section
    file. The length specified is rounded up to a CPU-specific
    page boundary so 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 service is performed. 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. A page cannot be written to disk unless the access mode
    used by $UPDSEC_64 is equal to or more privileged than the access
    mode of the owner of the page to be written.

 updflg

    OpenVMS usage:mask_longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    The update specifier for read/write global sections. The updflg
    argument is a longword value. The value 0 (the default) specifies
    that all read/write pages in the global section are to be written
    to the section file on disk, whether or not they have been
    modified. The value UPDFLG$M_WRT_MODIFIED specifies that the
    caller is the only process actually writing the global section
    and that only those pages that were actually modified by the
    caller are to be written to the section file on disk.

    Definitions for this flag can be found in the file SECDEF.H in
    SYS$STARLET_C.TLB for C and in $SECDEF in STARLET.MLB for macro.

 efn

    OpenVMS usage:ef_number
    type:         longword (unsigned)
    access:       read_only
    mechanism:    by value
    The event flag to be set when the section file on disk is
    actually updated. The efn argument is a longword specifying the
    number of the event flag; however, this service only uses the
    low-order byte. If you do not specify the efn, event flag 0 is
    used.

    When you invoke $UPDSEC_64, the specified event flag or event
    flag 0 is cleared. When the update operation is complete, the
    event flag is set.

 iosa_64

    OpenVMS usage:io_status_area
    type:         IOSA structure
    access:       write only
    mechanism:    by 32- or 64-bit reference
    The I/O status area to receive the final completion status of
    the updating operation. The iosa_64 argument is the 32- or 64-
    bit virtual address of the I/O status area. The I/O status area
    structure is 32 bytes in length.

    The I/O status area structure definition can be found in
    $IOSADEF in STARLET.MLB for macro and in the file IOSADEF.H in
    SYS$STARLET_C.TLB for C.

    When you call SYS$UPDSEC_64, the I/O status area is cleared.
    After the update operation is complete (that is, when all I/O
    to the disk is complete), the I/O status block is written as
    follows:

    o  isoa$l_status (offset 0)

       The first word contains the condition value return by SYS$QIO,
       indicating the final completion status.

       The first bit in the second word is set only if an error
       occurred during the I/O operation and the error was a hardware
       write error. The remaining bits of the second word are zeros.

    o  iosa$l_resd (offset 4)

       This field is reserved for future use by Compaq. The value in
       this field is unpredictable.

    o  iosa$q_count_q (offset 8)

       This field is reserved for future use by Compaq. The value in
       this field is unpredictable.

    o  iosa$ph_upsec_nowrt_va (offset 16)

       This field contains the virtual address of the first byte in
       the first disk block that was not written. In the case of an
       I/O error, this virtual address indicates the disk block for
       which the error occurred.

    o  iosa$q_resq (offset 24)

       This field is reserved for future use by Compaq. The value in
       this field is unpredictable.

 return_va_64

    OpenVMS usage:address
    type:         quadword address
    access:       write only
    mechanism:    by 32- or 64-bit reference
    The process virtual address of the first page that was actually
    queued for writing (in the first I/O request) back to the section
    file on the disk. 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 first I/O request to write modified pages back
    to the section file on disk. 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, written by the first I/O request.

 astadr_64

    OpenVMS usage:ast_procedure
    type:         procedure value
    access:       call without stack unwinding
    mechanism:    by 32- or 64-bit reference
    The asynchronous system trap (AST) routine to be executed when
    the section file has been updated. The astadr_64 argument is
    the 32- or 64-bit address of this routine. If you specify the
    astadr_64 argument, the AST routine executes at the access mode
    from which the section file update was requested.

 astprm_64

    OpenVMS usage:user_arg
    type:         quadword
    access:       read only
    mechanism:    by value
    The AST parameter to be passed to the AST routine. The astprm_64
    argument is a quadword argument that is passed to the AST
    routine.
  Close     HLB-list     TLB-list     Help  

[legal] [privacy] [GNU] [policy] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.