VMS Help  —  System Services, $EXPREG 64 (Alpha and Integrity servers)
    On Alpha and Integrity server 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);

1  –  Arguments

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