
{ File Decription Table Entry (FDE)
{ NOTE global_file_name may be moved to another table. It will contain an array
{   that define gfn/sfid pairs.

  TYPE
    gft$file_descriptor_entry = RECORD
      job_lock: gft$signature_lock,
      monitor_lock: mtt$monitor_interlock,
      flags: gft$fde_flags,
      global_file_name: ost$binary_unique_name,           {?????}
      file_hash_thread: ^gft$file_descriptor_entry,
      attached_in_write_count: gft$attach_count,
      attach_count: gft$attach_count,
      open_count: gft$open_count,
      file_kind: gft$file_kind,
      file_hash: 0 .. 255,
      segment_lock: gft$segment_lock_info,
      asti: mmt$ast_index,
      eoi_byte_address: amt$file_byte_address,
      eoi_state: mmt$eoi_state,
      allocation_unit_size: gft$allocation_unit_size,
      transfer_unit_size: gft$transfer_unit_size,
      file_limit: amt$file_limit,
      queue_status: gft$queue_status,
      queue_ordinal: mmt$page_frame_queue_id,
      preset_value: pmt$initialization_value,
      time_last_modified: ost$free_running_clock,
      last_segment_number: ost$segment,         { Stack or last reference.
      global_task_id: ost$global_task_id,       { Stack or last GTID that assigned ASID.
      stack_for_ring: 0 .. 15,                  {    used mainly for stack mgmt

      CASE media: gft$file_media OF
      = gfc$fm_mass_storage_file =
        disk_file_descriptor_p: ost$valid_relative_pointer,

      = gfc$fm_served_file =
        served_file_descriptor_p: ost$valid_relative_pointer,

      CASEND,
    RECEND,

    gft$fde_flags = PACKED RECORD
      eoi_modified: boolean,
      wire_eoi_page: boolean,
      active_shadow_file: boolean,
      global_template_file: boolean,
      fde_spare_4: boolean,
      fde_spare_5: boolean,
      fde_spare_6: boolean,
      fde_spare_7: boolean,
    RECEND;

*copyc amt$file_byte_address
*copyc amt$file_limit
*copyc gft$allocation_unit_size
*copyc gft$attach_count
*copyc gft$transfer_unit_size
*copyc gft$file_descriptor_index
*copyc gft$file_kind
*copyc gft$file_media
*copyc gft$signature_lock
*copyc gft$open_count
*copyc gft$queue_status
*copyc gft$segment_lock_info
*copyc gft$transfer_unit_size
*copyc mmt$ast_index
*copyc mmt$eoi_state
*copyc mmt$page_frame_queue_id
*copyc mtt$monitor_interlock
*copyc osd$virtual_address
*copyc ost$binary_unique_name
*copyc ost$free_running_clock
*copyc ost$global_task_id
*copyc ost$signature_lock
*copyc pmt$initialization_value
