User`s guide

Macros for Porting from VAX to Alpha or I64
$PREVIOUS_PAGE
user_mask_addr
Location of the application-provided byte-within-page mask. If this argument is
blank, the macro uses MMG$GL_BWP_MASK if user_pagesize_addr is also
blank. Otherwise, it subtracts 1 from the contents of the user_pagesize_addr
and uses that value.
quad=YES
If YES, the conversion supports 64-bit addressing. If NO, the conversion does not
support 64-bit addressing.
$ROUND_RETADR
Rounds the range implied by the virtual addresses in a retadr array returned
from a memory management system service to a range that is the factor of
CPU-specific pages. The return value can be supplied as an inadr array in a
subsequent call to another memory management system service.
Format
$ROUND_RETADR retadr, full_range, user_mask_addr, direction=ASCENDING
Parameters
retadr
Address of array of two 32-bit addresses, typically returned from $CRMPSC or a
similar service. This value can be in the form of either "label" or "(Rx)".
full_range
Output array of two longwords. FULL_RANGE[0] is retadr[0] rounded down to
a CPU-specific page boundary, and FULL_RANGE[1] is retadr[1] rounded up to
one less than a CPU-specific page boundary (that is, to the last byte in the page).
user_mask_addr
Location of application-provided byte-within-page mask. If this argument
is blank, the macro uses MMG$GL_BWP_MASK on an OpenVMS Alpha or
OpenVMS I64 system and VA$M_BYTE on an OpenVMS VAX system.
direction=ASCENDING
Direction of rounding. The keywords are defined in the following table:
ASCENDING retadr[0] < retadr[1]
DESCENDING retadr[1] < retadr[0]
UNKNOWN Values are compared at run time, then proper
rounding is performed
Macros for Porting from VAX to Alpha or I64 D–5