
  PROCEDURE [INLINE] bap$implicit_attach
    (    validation_ring: ost$valid_ring;
     VAR evaluated_file_reference: fst$evaluated_file_reference;
         null_share_modes: boolean;
     VAR allowed_access: fst$file_access_options;
     VAR required_sharing: fst$file_access_options;
     VAR action_taken: pft$attach_or_create_action;
     VAR status: ost$status);

?? PUSH (LISTEXT := ON) ??

    VAR
      attachment_choices: array [1 .. 2] of fst$attachment_option,
      device_class: rmt$device_class,
      ignore_selected_access: fst$file_access_options,
      ignore_selected_sharing: fst$file_access_options;

    attachment_choices [1].selector := fsc$access_and_share_modes;
    attachment_choices [1].access_modes.selector := fsc$specific_access_modes;
    attachment_choices [1].access_modes.value := $fst$file_access_options [];
    attachment_choices [1].share_modes.selector := fsc$specific_share_modes;
    IF null_share_modes THEN
      attachment_choices [1].share_modes.value := $fst$file_access_options [];
    ELSE
      attachment_choices [1].share_modes.value := -$fst$file_access_options [];
    IFEND;
    attachment_choices [2].selector := fsc$create_file;
    attachment_choices [2].create_file := FALSE;

    pfp$r3_attach_or_create_file (validation_ring, ^attachment_choices, NIL,
          evaluated_file_reference, allowed_access, ignore_selected_access,
          required_sharing, ignore_selected_sharing, action_taken,
          device_class, status);

  PROCEND bap$implicit_attach;

*copyc pfp$r3_attach_or_create_file
?? POP ??
