{
{ dmt$mainframe_allocation_table
{

  TYPE
    dmt$mainframe_allocation_table = record
      avt_index: dmt$active_volume_table_index,
      bytes_per_dau: dmt$bytes_per_dau,
      bytes_per_mau: dmt$bytes_per_mau,
      maus_per_dau: dmt$maus_per_dau,
      daus_per_position: dmt$daus_per_position,
      positions_per_device: dmt$device_position,
      default_allocation_size: dmt$allocation_size,
      default_transfer_size: dmt$transfer_size,
      starting_position_number: dmt$device_position,
      starting_search_position: dmt$device_position,
      daus_per_allocation_unit: array [dmt$allocation_styles] of
        dmt$daus_per_position,
      available_allocation_units: array [dmt$allocation_styles] of
        dmt$dau_address,
      allocation_chains: array [dmt$allocation_styles] of dmt$position_link,
      minimum_space: dmt$dau_address,
      maximum_space: dmt$dau_address,
      available_space: dmt$dau_address,
      leftover_space: dmt$dau_address,
      allocated_space: dmt$allocated_space,
      mat_too_full: boolean,
      available_dat_space: dmt$dau_address,
      dat_threshold: dmt$dau_address,
      recovery_threshold: dmt$dau_address,
      warning_threshold: dmt$dau_address,
      p_available_daus: ^dmt$available_daus,
      mat_entries: array [0 .. * ] of dmt$mat_entry,
    recend,

    dmt$position_link = 0 .. dmc$nil_position_link,

    dmt$available_daus = packed array [0 .. * ] of boolean,

    dmt$mat_entry = record
      allocation_style: dmt$allocation_styles,
      available_allocation_units: dmt$daus_per_position,
      backward_link: dmt$position_link,
      forward_link: dmt$position_link,
    recend,

    dmt$allocated_space = array [gft$file_kind] of dmt$dau_address;

  CONST
    dmc$nil_position_link = dmc$max_device_position + 1;

?? PUSH (LISTEXT := ON) ??
*copyc dmt$active_volume_table_index
*copyc dmt$allocation_size
*copyc dmt$device_allocation_unit
*copyc dmt$device_position
*copyc dmt$minimum_allocation_unit
*copyc dmt$transfer_size
*copyc gft$file_kind
?? POP ??
