VMS Help
System Services, $UPDSEC 64 (Alpha and Integrity servers)
*Conan The Librarian
|
On Alpha and Integrity server 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,...);
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 HP. The value in this
field is unpredictable.
o iosa$q_count_q (offset 8)
This field is reserved for future use by HP. 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 HP. 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.