{
{ dmt$dat_change
{

  TYPE
    dmt$dat_change = record
      dau_address: dmt$dau_address,
      index: 1 .. 0ffffff(16),
      case kind: dmt$dat_change_kind of

      = dmc$dat_initialize =
        initialize_block: dmt$dl_initialize_block,

      = dmc$dat_software_flawed =
        software_flaw_block: dmt$dl_software_flaw_block,

      = dmc$dat_release_dau =
        release_dau_block: dmt$dl_release_dau_block,

      = dmc$dat_return_dau, dmc$dat_recycle_dau =
        return_dau_block: dmt$dl_return_dau_block,

      = dmc$dat_assign_dau =
        assign_dau_block: dmt$dat_assign_dau_block,

      = dmc$dat_update_dau =
        update_dau_block: dmt$dat_update_dau_block,

      = dmc$dat_reallocate_dau =
        reallocate_dau_block: dmt$dl_reallocate_block,

      = dmc$dat_delink_dau =
        delink_dau_block: dmt$dat_delink_dau,

      casend,
    recend,

    dmt$dat_changes = array [1 .. *] of dmt$dat_change,

    dmt$dat_change_kind = (dmc$dat_initialize, dmc$dat_software_flawed,
      dmc$dat_release_dau, dmc$dat_return_dau, dmc$dat_assign_dau,
      dmc$dat_update_dau, dmc$dat_reallocate_dau, dmc$dat_delink_dau,
      dmc$dat_halt, dmc$dat_recycle_dau),

    dmt$dat_change_abort = (dmc$dat_no_action, dmc$dat_halt_before_change,
      dmc$dat_halt_after_change),

    dmt$dat_assign_dau_block = record
      global_file_name: dmt$global_file_name,
      dfl_index: dmt$device_file_list_index,
      mainframe_assigned: dmt$mainframe_assigned,
      first_flag: boolean,
      daus_per_allocation: dmt$daus_per_allocation,
    recend,

    dmt$dat_delink_dau = record
      global_file_name: dmt$global_file_name,
      dfl_index: dmt$device_file_list_index,
    recend,

    dmt$dat_update_dau_block = record
      global_file_name: dmt$global_file_name,
      dfl_index: dmt$device_file_list_index,
      next_dau_address: dmt$dau_address,
    recend,

    dmt$dat_change_index = 0 .. 7fffffff(16);

  TYPE
    dmt$dat_change_errors = record
      error_count: ALIGNED [0 MOD 8] integer {compare swap},
      error_list: array [1 .. 32] of dmt$dat_change_error,
    recend,

    dmt$dat_change_error = record
      time: integer,
      avt_index: dmt$active_volume_table_index,
      recovery_logging: boolean,
      dat_change: dmt$dat_change,
      dau_address: dmt$dau_address,
      dau_entry: dmt$ms_device_allocation_unit,
    recend;

?? PUSH (LISTEXT := ON) ??
*copyc dmt$active_volume_table_index
*copyc dmt$device_allocation_unit
*copyc dmt$device_file_list_index
*copyc dmt$device_log_entries
*copyc dmt$mainframe_assigned
*copyc dmt$ms_device_allocation_table
?? POP ??
