Locks a range of pages in the working set; if the pages are not
already in the working set, it brings them in and locks them. A
page locked in the working set does not become a candidate for
replacement.
Format
SYS$LKWSET inadr ,[retadr] ,[acmode]
C Prototype
int sys$lkwset (struct _va_range *inadr, struct _va_range
*retadr, unsigned int acmode);
1 – Arguments
inadr
OpenVMS usage:address_range
type: longword (unsigned)
access: read only
mechanism: by reference
Starting and ending virtual addresses of the range of pages to be
locked in the working set. The inadr argument is the address of
a 2-longword array containing, in order, the starting and ending
process virtual addresses. Only the virtual page number portion
of each virtual address is used; the low-order byte-within-page
bits are ignored.
On Alpha and Integrity server systems, if the first address in
the 2-longword array is within an image mapped to your process,
the entire image specified by the address is locked in the
working set.
Be sure to check calls to the SYS$LKWSET and SYS$LKWSET_64 system
services for correct arguments. This affects only process-based
code running above IPL2. Compiler and linker differences might
cause your program layout to change from Alpha, resulting in
incorrectly calculated starting and ending addresses for calls
to SYS$LKWSET and SYS$LKWSET_64. Calling these services with
incorrect arguments and then executing this code above IPL2 could
cause PGFIPLHI bugchecks. Note that SYS$LKWSET and SYS$LKWSET_
64 automatically lock linker-generated short data sections
associated with code sections locked in the working set.
retadr
OpenVMS usage:address_range
type: longword (unsigned)
access: write only
mechanism: by reference
Starting and ending process virtual addresses of the range of
pages actually locked by $LKWSET. The retadr argument is the
address of a 2-longword array containing, in order, the starting
and ending process virtual addresses.
On Alpha and Integrity server systems, if the inadr argument
specifies an address within an image mapped to your process,
retadr specifies only one range of pages locked in the working
set. Many ranges of pages might be locked.
acmode
OpenVMS usage:access_mode
type: longword (unsigned)
access: read only
mechanism: by value
Access mode to be associated with the pages to be locked. The
acmode argument is a longword containing the access mode. The
$PSLDEF macro defines the four access modes.
The most privileged access mode used is the access mode of the
caller. For the $LKWSET service to complete successfully, the
resultant access mode must be equal to or more privileged than
the access mode already associated with the pages to be locked.