 TYPE
    cmt$io_completion_table_entry = record
      available: boolean,
      request_identification: cmt$subsystem_io_request_id,
      global_task_id: ost$global_task_id,
      io_status: cmt$subsystem_io_completion_sta,
      io_request_type: cmt$io_request,
      subsystem_response_p: ^cmt$os_subsystem_io_response,
      data_command_descriptors_p: ^cmt$data_command_descriptors,
      wired_unit_queue_request_p: ^cmt$wired_unit_queue_request,
      next_entry: ^cmt$io_completion_table_entry,
      entry_index: cmt$io_completion_queue_index,
      time_request_created: ost$time,
      job_name: jmt$system_supplied_name,
    recend,
    cmt$available_entries = string(cmc$max_subsystem_io_requests),
    cmt$io_completion_table_header = record
      available_entries: cmt$io_completion_queue_index,
      entries_in_use: cmt$io_completion_queue_index,
      recovery_action_required: cmt$io_completion_queue_index,
      table_lock: ost$signature_lock,
      entries_available: cmt$available_entries,
      responses_available: ^cmt$subsys_io_response_area,
    recend;

  TYPE
    cmt$io_completion_table = record
      header: cmt$io_completion_table_header,
      entries: array [1 .. cmc$max_subsystem_io_requests] of
        cmt$io_completion_table_entry,
    recend;

  TYPE
    cmt$ssiot_entry_information = array [1 .. * ] of cmt$ssiot_information,
    cmt$ssiot_information = record
      case keyword: cmt$ssiot_entry_field of
      = cmc$ssiote_io_status =
        io_status: cmt$subsystem_io_completion_sta,
      = cmc$ssiote_null_entry =
        ,
      = cmc$ssiote_request =
        io_type: cmt$io_request_type,
        element_name: cmt$element_name,
      = cmc$ssiote_request_created =
        time_request_created: ost$time,
      = cmc$ssiote_request_id =
        request_id: cmt$subsystem_io_request_id,
        subsystem_response_p: ^cmt$os_subsystem_io_response,
        data_command_descriptors_p: ^cmt$data_command_descriptors,
      = cmc$ssiote_wait_for_io_complete =
        wait_for_io_completion: cmt$wait_for_io_completion,
      = cmc$ssiote_wired_request =
        wired_request_p: ^cmt$wired_unit_queue_request,
      casend,
    recend,
    cmt$ssiot_entry_field = (cmc$ssiote_io_status, cmc$ssiote_request,
      cmc$ssiote_request_id, cmc$ssiote_dummy_3, cmc$ssiote_wired_request,
      cmc$ssiote_request_created,
      cmc$ssiote_dummy_14,
      cmc$ssiote_wait_for_io_complete, cmc$ssiote_null_entry);

?? PUSH (LISTEXT := ON) ??
*copyc cmt$io_completion_queue_index
*copyc cmt$subsystem_io_request_id
*copyc cmt$subsystem_io_status
*copyc jmt$system_supplied_name
*copyc ost$global_task_id
*copyc iot$wired_unit_queue_request
*copyc cmt$io_request_type
*copyc cmt$element_name
*copyc ost$signature_lock
*copyc ost$time
*copyc ost$name
?? POP ??
