?? NEWTITLE := 'NOS/VE : Basic Access Methods : Delete Data' ??
MODULE bam$delete_data;
?? RIGHT := 110 ??

{  PURPOSE:
{    This module contains bap$delete_data which is called by
{    fsp$copy_file so that deletion of the output file can
{    be postponed until it is known that a copy will be performed.

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc bac$minimum_open_ring
*copyc ame$improper_file_id
*copyc amt$file_identifier
*copyc ost$status
?? POP ??
*copyc baf$task_file_entry_p
*copyc mmp$set_segment_length
*copyc osp$set_status_abnormal
?? TITLE := 'PROCEDURE bap$delete_data', EJECT ??
*copyc bah$delete_data

  PROCEDURE [XDCL, #GATE] bap$delete_data
    (    file_identifier: amt$file_identifier;
     VAR status: ost$status);

    VAR
      file_instance_p: ^bat$task_file_entry;

    status.normal := TRUE;
    file_instance_p := baf$task_file_entry_p (file_identifier);
    IF file_instance_p = NIL THEN
      osp$set_status_abnormal (amc$access_method_id, ame$improper_file_id, 'BAP$DELETE_DATA', status);
      RETURN; {----->
    IFEND;

    file_instance_p^.global_file_information^.eoi_byte_address := 0;

    IF file_instance_p^.device_class = rmc$mass_storage_device THEN
      mmp$set_segment_length (file_instance_p^.file_pva, bac$minimum_open_ring, 0, status);
    IFEND;

  PROCEND bap$delete_data;
?? OLDTITLE ??
MODEND bam$delete_data;
