User`s guide

Macros for Porting from VAX to Alpha or I64
$PAGES_TO_BYTES
$PAGES_TO_BYTES
Converts a page count to a byte count.
Format
$PAGES_TO_BYTES source_pagcnt, dest_bytcnt, leftshift, quad=YES
Parameters
source_pagcnt
Source page count.
dest_bytcnt
Destination of byte count.
leftshift
Location of application-provided value to shift (in place of multiply). This value is
a function of the page size, as shown in Table D–1.
quad=YES
If YES, the conversion supports 64-bit addressing. If NO, the conversion does not
support 64-bit addressing.
$PREVIOUS_PAGE
Computes the virtual address of the first byte in the previous page.
Format
$PREVIOUS_PAGE source_va, dest_va, clearbwp=NO, user_pagesize_addr,
user_mask_addr, quad=YES
Parameters
source_va
Source virtual address.
dest_va
Destination of virtual address within previous page.
clearbwp=NO
If YES, masks the byte-within-page portion of the source virtual address.
The clearbwp=NO option is a performance enhancement, avoiding unnecessary
instructions if you know you are starting on a page boundary or you are intending
to divide by page-size anyway.
user_pagesize_addr
Location of the page-size value (returned by a call to the $GETSYI system service
specifying the SYI$_PAGESIZE item descriptor) in the application data area.
If this argument is blank, the macro uses MMG$GL_PAGESIZE (bigpage) or
MMG$C_VAX_PAGE_SIZE (vaxpage).
D–4 Macros for Porting from VAX to Alpha or I64