VMS Help  —  System Services, $SETPRT 64 (Alpha and Integrity servers)
    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.
Close Help