MS_$ADDMAPX Domain/OS MS_$ADDMAPX
NAME
ms_$addmapx - map more of an object, specifying location
SYNOPSIS (C)
#include <apollo/base.h>
#include <apollo/ms.h>
void *ms_$addmapx(
void *&old_address,
unsigned long int &start,
unsigned long int &desired_length,
void *&new_address,
unsigned long int *mapped_length,
status_$t *status)
SYNOPSIS (Pascal)
%include '/sys/ins/base.ins.pas';
%include '/sys/ins/ms.ins.pas';
function ms_$addmapx(
in old_address: univ_ptr;
in start: linteger;
in desired_length: linteger;
in new_address: univ_ptr;
out mapped_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, desired_length, mapped_length, status
integer*4 address, old_address, new_address
integer*4 dummy1, dummy2, dummy3
pointer /address/ dummy1
pointer /old_address/ dummy2
pointer /new_address/ dummy3
address = ms_$addmapx(old_address, start, desired_length,
& new_address, mapped_length, status)
DESCRIPTION
This call maps another portion of a previously mapped object. It differs
from ms_$addmap in that the user specifies where the new mapping is to be
established. It differs from ms_$remap in that it does not change the
existing pointer to the mapped object, but returns a new pointer to a
different portion of the object. The new mapping is not necessarily con-
tiguous with the old mapping.
Attributes of the mapping (extend, access, concurrency) and the lock on
the mapped object are not changed by ms_$addmapx. Access advice provided
via ms_$advice for the old mapping is also propagated to the new mapping.
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.
start
The first byte of the object to be mapped.
desired_length
The number of bytes to map.
new_address
The location in memory at which the new map should be established.
mapped_length
The number of bytes actually mapped.
status
The completion status. If the pointer passed in old_address does
not point to a mapped object, ms_$addmapx will return with
ms_$not_mapped in status. If desired_length cannot be satisfied,
ms_$addmapx will return with ms_$bad_length in status.
SEE ALSO
ms_$addmap, ms_$remap