VMS Help System Services, $ULKPAG *Conan The Librarian (sorry for the slow response - running on an old VAX) |
Unlocks pages that were previously locked in memory by the Lock Pages in Memory ($LCKPAG) service. Locked pages are automatically unlocked and deleted at image exit. Format SYS$ULKPAG inadr ,[retadr] ,[acmode] C Prototype int sys$ulkpag (struct _va_range *inadr, struct _va_range *retadr, unsigned int acmode); Arguments inadr OpenVMS usage:address_range type: longword (unsigned) access: read only mechanism: by reference Starting and ending virtual addresses of the pages to be unlocked. 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. If the starting and ending virtual addresses are the same, a single page is unlocked. If more than one page is being unlocked and you need to determine specifically which pages had been previously unlocked, you should unlock the pages one at a time, that is, one page per call to $ULKPAG. The condition value returned by $ULKPAG indicates whether the page was previously unlocked. retadr OpenVMS usage:address_range type: longword (unsigned) access: write only mechanism: by reference-array reference or descriptor Starting and ending process virtual addresses of the pages actually unlocked by $ULKPAG. The retadr argument is the address of a 2-longword array containing, in order, the starting and ending process virtual addresses. If an error occurs while multiple pages are being unlocked, retadr specifies those pages that were successfully unlocked before the error occurred. If no pages were successfully unlocked, both longwords in the retadr array contain the value -1. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode on behalf of which the request is being made. The acmode argument is a longword containing the access mode. The $PSLDEF macro defines the symbols for the four access modes. The most privileged access mode used is the access mode of the caller. To unlock any specified page, the resultant access mode must be equal to or more privileged than the access mode of the owner of that page.
|