VMS Help
System Services, $SETPRT 64 (Alpha Only)
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
On Alpha 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);
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.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.