VMS Help
System Services, $EXPREG 64 (Alpha Only)
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
On Alpha systems, adds a specified number of demand-zero
allocation pages to a process's virtual address space for the
execution of the current image. Expansion occurs at the next free
available address within the specified region.
This service accepts 64-bit addresses.
Format
SYS$EXPREG_64 region_id_64 ,length_64 ,acmode ,flags
,return_va_64 ,return_length_64
C Prototype
int sys$expreg_64 (struct _generic_64 *region_id_64, unsigned
__int64 length_64, unsigned int acmode,
unsigned int flags, void *(*(return_va_64)),
unsigned __int64 *return_length_64);
region_id_64
OpenVMS usage:region identifier
type: quadword (unsigned)
access: read only
mechanism: by 32- or 64-bit reference
The region ID associated with the virtual address range to be
expanded. The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF
macro in STARLET.MLB define a symbolic name for each of the three
default regions in P0, P1, and P2 space.
The following region IDs are defined:
Symbol Region
VA$C_P0 Program region
VA$C_P1 Control region
VA$C_P2 64-bit program region
Other region IDs, as returned by the $CREATE_REGION_64 service,
can be specified.
length_64
OpenVMS usage:byte count
type: quadword (unsigned)
access: read only
mechanism: by value
Length of the virtual address space to be created. The length
specified must be a multiple of CPU-specific pages.
acmode
OpenVMS usage:access_mode
type: longword (unsigned)
access: read only
mechanism: by value
Access mode associated with the call to $EXPREG_64. The access
mode determines the owner mode of the pages as well as the read
and write protection on the pages. The acmode argument is a
longword containing the access mode. The $PSLDEF macro defines
symbols for the four access modes.
The $EXPREG_64 service uses whichever of the following two access
modes is least privileged:
o The access mode specified by the acmode argument.
o The access mode of the caller. The protection of the pages
is read/write for the resultant access mode and those more
privileged.
Address space cannot be created within a region that has a create
mode associated with it that is more privileged than the caller's
mode. The condition value SS$_IVACMODE is returned if the caller
is less privileged than the create mode for the region.
flags
OpenVMS usage:mask_longword
type: longword (unsigned)
access: read only
mechanism: by value
Flag mask controlling the characteristics of the demand-zero
pages created. The flags argument is a longword bit vector in
which each bit corresponds to a flag. The $VADEF macro and the
VADEF.H file define a symbolic name for each flag. You construct
the flags argument by performing a logical OR operation on the
symbol names for all desired flags.
All bits in the flags argument are reserved for future use
by Compaq and should be specified as 0. The condition value
SS$_IVVAFLG is returned if any bits are set.
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 a created virtual address
range. 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 32- or 64-bit virtual address of a naturally aligned quadword
into which the service returns the length in bytes of the virtual
address range created.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.