
{ DECK: IOP$IPI_TAPE_LOG_DATA

{ Type definition for sequence passed by iop$tape_process_pp_response
{ to dsp$report_system_message. The procedure iop$log_tape_data converts
{ this sequence into one of type iot$ipi_statistic_data (IPI) or
{ iot$ccc_cart_statistic_data (Cartridge/CCC) which is passed
{ to procedure sfp$emit_statistic.

{ The following constant is the length of iot$ipi_tape_log_data excluding the
{ ipi_status or ccc_cart_status field. There are 3 spare bytes.

  CONST
    ioc$length_to_ipi_status = 16;

  TYPE
    iot$log_unit_type = (ioc$ipi_reel, ioc$ccc_cart);

  TYPE
    iot$ipi_tape_log_data = record
      logical_unit: iot$logical_unit,                        {2 bytes}
      iou_number: dst$iou_number,                            {1 byte}
      response_length: iot$response_length,                  {2 bytes}
      channel: cmt$physical_channel,                         {3 bytes}
      interface_error_code: iot$interface_error_code,        {2 bytes}
      controller_number: 0 .. 0ff(16),                       {1 byte}
      unit_number: 0 .. 0ff(16),                             {1 byte}
      spare: 0 .. 0ffffff(16),                               {3 bytes spare}
      case unit_type: iot$log_unit_type of                   {1 byte}
      = ioc$ipi_reel =
        ipi_status: ALIGNED [0 MOD 8] iot$ipi_tape_status,
      = ioc$ccc_cart =
        ccc_cart_status: ALIGNED [0 MOD 8] iot$ccc_cart_device_status,
      casend
    recend;

*copyc cmt$physical_channel
*copyc dst$iou_number
*copyc iot$ccc_cartridge_tape_status
*copyc iot$ipi_tape_status
*copyc iot$logical_unit
*copyc iot$pp_response
