On Alpha and Integrity server systems, allows a process to change the protection on a page or range of pages. This service accepts 64-bit addresses. Format SYS$SETPRT_64 start_va_64 ,length_64 ,acmode ,prot ,return_va_64 ,return_length_64 ,return_prot_64 C Prototype int sys$setprt_64 (void *start_va_64, unsigned __int64 length_64, unsigned int acmode, unsigned int prot, void *(*(return_va_64)), unsigned __int64 *return_length_64, unsigned int *return_prot_64);
1 – Arguments
start_va_64 OpenVMS usage:address type: quadword address access: read only mechanism: by value The starting virtual address of the range of pages whose protection is to be changed. The specified virtual address will be rounded down to a CPU-specific boundary. length_64 OpenVMS usage:byte count type: quadword (unsigned) access: read only mechanism: by value Length of the virtual address space whose protection is to be changed. The specified length will be rounded up to a CPU- specific page boundary so that it includes all CPU-specific pages in the requested range. acmode OpenVMS usage:access_mode type: longword (unsigned) access: read only mechanism: by value Access mode associated with the call to $SETPRT_64. The acmode argument is a longword containing the access mode. The $PSLDEF macro in STARLET.MLB and the file PSLDEF.H in SYS$STARLET_C.TLB define the following symbols and their values for the four access modes: Value Symbolic Name Access Mode 0 PSL$C_KERNEL Kernel 1 PSL$C_EXEC Executive 2 PSL$C_SUPER Supervisor 3 PSL$C_USER User The most privileged access mode used is the access mode of the caller. To change the protection of any page in the specified range, the resultant access mode must be equal to or more privileged than the access mode of the owner of that page. prot OpenVMS usage:page_protection type: longword (unsigned) access: read only mechanism: by value Page protection to be assigned to the specified pages. The prot argument is a longword value containing the protection code. Only bits 0 to 3 are used; bits 4 to 31 are ignored. The $PRTDEF macro for MACRO-32 and the include file PRTDEF.H for C define the symbolic names for the protection codes. return_va_64 OpenVMS usage:address type: quadword address access: write only mechanism: by 32- or 64-bit reference The lowest process virtual address of the range of pages whose protection was actually changed. The return_va_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the virtual address. return_length_64 OpenVMS usage:byte count type: quadword (unsigned) access: write only mechanism: by 32- or 64-bit reference The length of the virtual address range whose protection was actually changed. The return_length_64 argument is the 32- or 64-bit virtual address of a naturally aligned quadword into which the service returns the length of the virtual address range in bytes. return_prot_64 OpenVMS usage:page_protection type: longword (unsigned) access: write only mechanism: by 32- or 64-bit reference Protection previously assigned to the last page in the range. The return_prot_64 argument is the 32- or 64-bit virtual address of a naturally aligned longword into which $SETPRT_64 writes the protection of this page. The return_prot_64 argument is useful only when protection for a single page is being changed.