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.