
  CONST
    bac$tft_allocation_size = 75, {number of entries allocated at a time
    bac$maximum_tft_size = amc$max_file_id_ordinal;


  TYPE
    bat$tft_limit = 1 .. bac$maximum_tft_size,
    bat$last_tft_entry = 0 .. bac$maximum_tft_size,
    bat$tft_entry_assignment = string ( * <= bac$maximum_tft_size),
    bat$task_file_table = array [1 .. * ] of bat$task_file_entry,

{  The target_connection_level field is copied from the connection_level
{  of the target in the connected_files table at the time the
{  target file is opened.
{
{  The connection_level field is updated from the connection_level
{  of the subject in the connected_files table at the time the
{  subject is opened.  If one of its targets is closed and the
{  subject is not being closed, this value is set to
{  UPPERVALUE (clt$file_connection_level).  This forces an update
{  of all the TFT targets of this subject the next time the
{  connected_files FAP is called.

    bat$task_file_entry = record
      local_file_name: fst$path_handle_name,
      sequence_number: amt$file_id_sequence,
      access_level: amt$access_level,
      open_ring: ost$valid_ring,
      close_allowed: boolean,
      next_target: bat$target_file,
      initial_open: boolean,
      instance_of_open_modified: boolean,
      instance_attributes: bat$instance_attributes,
      open_actions: bat$open_actions,
      previous_get_at_eoi: boolean,
      residual_skip_count: amt$residual_skip_count,
      private_read_information: ^bat$private_read_information,
      global_file_information: ^bat$global_file_information,
      system_file_label: ^fmt$system_file_label,
      fap_control_information: bat$fap_control_information,
      module_dynamically_loaded: boolean,
      target_connection_level: clt$file_connection_level,
      case device_class: rmt$device_class of
      = rmc$connected_file_device =
        subject: ^clt$connected_file_subject,
        connected_files: ^clt$connected_files,
        connection_level: clt$file_connection_level,
        first_target: bat$target_file,
      = rmc$interstate_link_device =
        ,
      = rmc$local_queue_device =
        ,
      = rmc$log_device =
        log_ordinal: pmt$logs,
        log_address: ^SEQ ( * ),
        log_cycle: lgt$log_cycle,
        log_entry: ^bat$log_entry,
      = rmc$magnetic_tape_device =
        labeled_tape_state_info: bat$labeled_tape_state_info,
      = rmc$mass_storage_device =
        allowed_access_conditions: fst$file_access_conditions,
        file_pva: ^cell,
        rollback_procedure: fst$rollback_procedure,
        wait: boolean,
        wait_time: 0 .. fsc$longest_wait_time,
      = rmc$memory_resident_device =
        ,
      = rmc$network_device =
        sender_active: boolean,
        sender_activity_status: ^ost$activity_status,
        receiver_active: boolean,
        receiver_activity_status: ^ost$activity_status,
        data_transfer_timeout: nat$wait_time,
        eoi_message_enabled: boolean,
        eoi_message: ^nat$eoi_message,
        eoi_peer_termination: boolean,
      = rmc$null_device =
        ,
      = rmc$pipeline_device =
        ,
      = rmc$rhfam_device =
        , {Not a requestable option, placed here for completeness.
      = rmc$terminal_device =
        st_open_file_dsc_pointer: ^iit$st_open_file_description,
        open_file_dsc_pointer: ^iit$open_file_description,
      casend,
    recend,

    bat$target_file = record
      case defined: boolean of
      = TRUE =
        file_identifier: amt$file_identifier,
      = FALSE =
        ,
      casend,
    recend,

    bat$log_entry = record
      size: cyt$string_size,
      value: string ( * <= cyc$max_string_size),
    recend;

*copyc amt$fap_declarations
*copyc amt$access_level
*copyc amt$file_identifier
*copyc amt$residual_skip_count
*copyc bat$fap_control_information
*copyc bat$instance_attributes
*copyc bat$global_file_information
*copyc bat$open_actions
*copyc bat$private_read_information
*copyc bat$labeled_tape_state_info
*copyc clt$connected_file
*copyc cyd$string
*copyc fmc$entry_assigned
*copyc fmt$system_file_label
*copyc fsc$longest_wait_time
*copyc fst$file_access_conditions
*copyc fst$path_handle_name
*copyc fst$rollback_procedure
*copyc iit$connection_description
*copyc lgt$log_read_activity
*copyc osd$virtual_address
*copyc pmd$system_log_interface
*copyc rmt$device_class
*copyc nat$eoi_message
*copyc nat$wait_time
*copyc ost$activity_status
*copyc ost$page_size
