VMS Help
System Services, $SETFLT 64
*Conan The Librarian
|
On Alpha and Integrity server systems, allows a process to change
the fault characteristic (for example, no execute) on a page or
range of pages.
Format
$SETFLT_64 start_va_64 ,length_64 ,acmode ,fault_flag
,return_va_64 ,return_length_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 fault
characteristic is to be changed. The specified virtual address
will be rounded down to a CPU-specifie page boundary.
length_64
OpenVMS usage:byte count
type: quadword (unsigned)
access: read only
mechanism: by value
Length of the virtual address space whose fault characteristic
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 $SETFLT_64. The acmode
argument is a longword containing the access mode. The $PSLDEF
macro defines symbols for the four access modes.
The most privileged access mode used is the access mode of the
caller. The calling process can modify pages only if those pages
are owned by an access mode equal to or less privileged than the
access mode of the calling process.
fault_flag
OpenVMS usage:mask_longword
type: longword (unsigned)
access: read only
mechanism: by value
Flag mask specifying the request options. The fault_flag argument
is a longword bit vector in which each bit corresponds to a flag.
The $FLTDEF macro and the FLTDEF.H file define a symbolic name
for each flag.
The $FLTDEF macro defines the following symbolic names for the
fault characteristic codes:
Symbol Description
FLT$M_NO_EXECUTE Fault on execute access attempt
FLT$M_EXECUTABLE Allow execute access
If you specify the fault characteristic as the value 0, the
characteristic defaults to no execute access.
return_va_64
OpenVMS usage:address
type: quadword address
access: write only
mechanism: by 32-bit or 64-bit reference
The lowest process virtual address of the range of pages whose
fault characteristics were actually changed.
return_length_64
OpenVMS usage:byte count
type: quadword (unsigned)
access: write only
mechanism: by 32-bit or 64-bit reference
The length of the virtual address range whose fault
characteristics were actually changed. The return_length_64
argument is the 32-bit or 64-bit virtual address of a naturally
aligned quadword into which the service returns the length of the
virtual address range in bytes.
The Set Fault Characteristic service sets the fault
characteristics (for example, no execute) for the specified
range of pages, checking that the specified mode is at least
as privileged as the owner of the page.
If the condition value SS$_ACCVIO is returned by this service, a
value might not be returned in the memory locations pointed to by
the return_va_64 and return_length_64 arguments.
If a condition value other than SS$_ACCVIO is returned, the
returned address and returned length indicate the pages that were
successfully changed before the error occurred. If no pages were
changed, the return_va_64 argument will contain the value -1, and
a value might not be returned in the memory location pointed to
by the return_length_64 argument.
Required Privileges
None
Required Quota
None
Related Services
$CRETVA_64, $EXPREG_64, $SETPRT_64
3 - Condition Values Returned
|
SS$_NORMAL The service completed successfully.
SS$_ACCVIO The return_va_64 or return_length_64 argument
cannot be written by the caller.
SS$_BADPARAM A bad fault_flag argument was specified.
SS$_LENVIO A page in the specified range is beyond
the length of virtual addresses within that
region.
SS$_NOSUCHPAG An attempt was made to change the fault
characteristic on a nonexistent page.
SS$_PAGNOTINREG A page in the specified range is not in
process private adress space.
SS$_PAGOWNVIO The process attempted to change the protection
on a page owned by a more privileged access
mode.