VMS Help
System Services, $GET REGION INFO (Alpha Only)

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

    On Alpha systems, gets information about a specified virtual
    region.

    This service accepts 64-bit addresses.

    Format

      SYS$GET_REGION_INFO  function_code ,region_id_64 ,start_va_64

                           ,nullarg ,buffer_length ,buffer_address_64

                           ,return_length_64

    C Prototype

      int sys$get_region_info  (unsigned int function_code, struct

                               _generic_64 *region_id_64, void

                               *start_va_64, void *reserved,

                               unsigned int buffer_length, void

                               *buffer_address_64, unsigned int

                               *return_length_64);

  1 - Arguments

 function_code

    OpenVMS usage:function code
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Function code specifying how the information you are requesting
    should be looked up. All function codes return region summary
    information in the return buffer in the format of the Region
    Summary Buffer. The Region Summary Buffer format is shown in the
    table in the buffer_address_64 argument.

    If less buffer space is specified than the length of the Region
    Summary Buffer, only the amount of information requested is
    returned. If more buffer space is specified than the length of
    the Region Summary Buffer, the service will fill in the buffer.
    The return length will reflect the amount of useful information
    written to the buffer, the size of the Region Summary Buffer.

    The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF macro in
    STARLET.MLB define a symbolic name for each function code.

    The following function codes are defined:

    Symbolic Name        Description

    VA$_REGSUM_BY_ID     Return the region summary information for
                         the region whose ID is specified in the
                         region_id_64 argument.
    VA$_REGSUM_BY_VA     Return the region summary information for
                         the region that contains the virtual address
                         specified in the start_va_64 argument.
    VA$_NEXT_REGSUM_     Return the region summary information for
    BY_VA                the region containing the starting address.
                         If the starting address is not in a region,
                         return the region summary information for
                         the next region with a starting address
                         higher than the specified address.

                         Note: For the VA$_NEXT_REGSUM_BY_VA
                         function, OpenVMS checks for a start_va_64
                         argument in the inaccessible address range
                         in P2 space. If it finds one, OpenVMS
                         adjusts the address to account for the
                         discontinuity. For more information about
                         the layout of the 64-bit virtual address
                         space, refer to the OpenVMS Programming
                         Concepts Manual.

                         This function code can be used for wildcard
                         operations. See the description of the
                         start_va_64 argument for information on how
                         to program a wildcard operation on regions.

 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 region about which information
    is requested. This argument is read only if the function code
    VA$_REGSUM_BY_ID is specified.

    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.

 start_va_64

    OpenVMS usage:input address
    type:         quadword address
    access:       read only
    mechanism:    by value
    Virtual address associated with region about which information
    is requested. This argument is read only if the function_code
    argument is VA$_REGSUM_BY_VA or VA$_NEXT_REGSUM_BY_VA.

    If the function_code argument is VA$_REGSUM_BY_VA, this argument
    is a virtual address within the region about which you are
    requesting information.

    To perform a wildcard search on all regions, specify VA$_
    NEXT_REGSUM_BY_VA as the function code and begin with the
    start_va_64 argument specified as -1. For subsequent calls,
    specify start_va_64 as the sum of the previous region's start
    address and length. Call the $GET_REGION_INFO service in a loop
    until the condition SS$_NOMOREREG is returned.

                                   NOTE

       Before performing the lookup function, OpenVMS sign-extends
       the 64-bit starting address so that it represents a properly
       formed virtual address for the CPU.

 nullarg

    OpenVMS usage:null_arg
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Placeholding argument reserved to Compaq.

 buffer_length

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Length of the buffer into which information is returned.

 buffer_address_64

    OpenVMS usage:varying_arg
    type:         unspecified
    access:       write only
    mechanism:    by 32- or 64-bit reference
    The 32- or 64-bit virtual address of a quadword-aligned buffer
    into which to return information if the buffer_length argument is
    nonzero.

    This argument is ignored if the buffer_length argument is zero.

    The following table shows the format of the Region Summary
    Buffer:

    Table SYS-3 Region Summary Buffer Format

                                               Field
                                               Size    Field Offset
    Field name           Meaning               (Bytes) (Decimal)

    VA$L_FLAGS           Flags used when       4       8
                         region was created
    VA$L_REGION_         Create and owner      4       12
    PROTECT              mode of region
    VA$Q_REGION_ID       Region identifier     8       0
    VA$PQ_START_VA       Starting (lowest)     8       16
                         virtual address of
                         region
    VA$Q_REGION_SIZE     Total length of       8       24
                         region
    VA$PQ_FIRST_FREE_    First free virtual    8       32
    VA                   address in region
    VA$C_REGSUM_LENGTH   Length of Region      constant 40
                         Summary Buffer

    The file VADEF.H in SYS$STARLET_C.TLB and the $VADEF MACRO in
    STARLET.MLB define the REGSUM structure.

 return_length_64

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by 32- or 64-bit reference
    The 32- or 64-bit virtual address of a naturally aligned longword
    into which the service returns the length of the information in
    bytes.
  Close     HLB-list     TLB-list     Help  

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