MS_$REPROTECT Domain/OS MS_$REPROTECT
NAME
ms_$reprotect - change object mapping type
SYNOPSIS (C)
#include <apollo/base.h>
#include <apollo/ms.h>
void ms_$reprotect(
void *&old_address,
ms_$acc_mode_t &access,
unsigned long int &length,
status_$t *status)
SYNOPSIS (Pascal)
%include '/sys/ins/base.ins.pas';
%include '/sys/ins/ms.ins.pas';
procedure ms_$reprotect(
in old_address: univ_ptr;
in access: ms_$acc_mode_t;
in length: linteger;
out status: status_$t): univ_ptr;
SYNOPSIS (FORTRAN)
%include '/sys/ins/base.ins.ftn'
%include '/sys/ins/ms.ins.ftn'
integer*4 start, length, status
integer*4 old_address
integer*4 dummy
integer*2 access
pointer /old_address/ dummy
call ms_$reprotect(old_address, access, length, status)
DESCRIPTION
ms_$reprotect changes the type of mapping for a region of the virtual
addressed space. The specified region can be an entire previously-mapped
region or a subset.
This call cannot be used to increase the rights of a region beyond those
requested when the region was originally mapped. For instance, if you
map a routine with "read" mapping, a call to ms_$reprotect to request
"read-write" mapping will fail. However, if you had originally requested
"read-write" and then remapped to "read" only, you could restore the
rights to the original "read-write".
old_address
Pointer to the currently mapped portion of the object. Use the
pointer returned by the most recent call to ms_$mapl, ms_$crmapl, or
ms_$remap.
access
The desired new access.
length
The length of the area to have new rights established.
status
The completion status.