HELPLIB.HLB  —  System Services, $LKWSET
    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.
Close Help