Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ms_$addmapx — Apollo

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ms_$addmap

ms_$remap

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026