{
{   The purpose of this request is to associate a previously opened file with a
{ different segment number than the one assigned by fsp$open_file.
{
{   The following assumptions prevail when using this interface:
{
{    1.  The proposed segment number is not currently a valid segment in the
{        task's address space.
{
{    2.  The file has previously been opened by the task and the
{        file_identifier from that open has been passed to this request.
{
{    3.  All of the access constraints imposed on the instance of open will be
{        carried forth to the new segment number.
{
{    4.  The validation_ring must be <= to the ring of the caller of the
{        fsp$open_file request which originated this instance of open and must
{        be >= the ring of the caller of this request.
{
{    5.  The segment number originally assigned to the instance of open of this
{        file will be freed.
{
{    6.  The SEGMENT_POINTER will be initialized exactly the way it would have
{        been had the task called AMP$GET_SEGMENT_POINTER directly.  In fact,
{        subsequent calls to AMP$GET_SEGMENT_POINTER will return the newly
{        assigned segment number in the pointer.  The VALIDATION_RING will be
{        used to initialize the PVA.RING portion of the SEGMENT_POINTER.
{
{    7.  All future requests such as AMP$SET_SEGMENT_EOI and
{        AMP$SET_SEGMENT_POSITION will require the SEGMENT_POINTER as input.
{
{    8.  If there is a FILE_ACCESS_PROCEDURE associated with the file which is
{        the object of this request the FAP may fail if it accesses a stale
{        segment pointer.
{
{    9.  This request is valid only for mass storage files.
{
{
{       FSP$CHANGE_SEGMENT_NUMBER (FILE_IDENTIFIER, NEW_SEGMENT_NUMBER,
{         VALIDATION_RING, POINTER_KIND, SEGMENT_POINTER, STATUS)
{
{  FILE_IDENTIFIER: (input)  This parameter specifies the file access
{        identifier established when the file whose segment number is to be
{        changed was opened.
{
{  NEW_SEGMENT_NUMBER: (input)  This parameter specifies the proposed new
{        number for the segment in this task's address space.
{
{  VALIDATION_RING: (input)  This parameter specifies the ring number to be
{        used to validate the change in the segment number for this instance of
{        open.
{
{  POINTER_KIND: (input)  This parameter specifies the kind of pointer to be
{        returned by this request.
{
{  SEGMENT_POINTER: (output)  This parameter specifies a segment pointer
{        containing the new segment number.  The kind of pointer is determined
{        by the POINTER_KIND parameter.
{
{  STATUS: (output) This parameter specifies the request status.
{        CONDITION:
{                  ame$improper_device_class
{                  ame$improper_file_id
{                  ame$ring_validation_error
{                  ame$improper_pointer_kind
{                  ame$read_of_empty_segment
{                  ame$write_of_empty_segment
