
{ DECK: IOT$TAPE_IO_STATUS

  CONST
    ioc$tape_completion_code_max = 120;

  CONST

{   Completions codes returned that indicate hardware or media failure.

    ioc$indeterminate = 1,
    ioc$input_channel_parity = 2,
    ioc$output_channel_parity =  3,
    ioc$controller_failure = 4,
    ioc$unit_failure = 5,
    ioc$function_timeout = 6,
    ioc$tape_medium_failure = 7,
    ioc$erase_limit_exceeded = 8,
    ioc$unit_reserved = 9,
    ioc$iou_output_parity = 10,
    ioc$indeterminate_output_parity = 11,
    ioc$unable_to_write_id_burst = 12,
    ioc$unable_to_set_agc = 13,
    ioc$hardware_correction_logging = 14,

{   Completion codes that are used to communicate between tape_queue_manager
{   and tape_block_manager.

    ioc$blank_tape = 60,
    ioc$read_past_phys_eot = 61,  { cartridge tape only
    ioc$write_past_phys_eot = 62, { cartridge tape only

    ioc$load_point = 100,
    ioc$load_point_block_count_ne_0 = 101,
    ioc$no_write_ring = 102,
    ioc$not_capable_of_density = 103,
    ioc$system_software_failure = 104,
    ioc$tapemark_read = 105,
    ioc$user_own_recovery = 106,
    ioc$alert_condition_encountered = 107,
    ioc$request_not_processed = 108;

  TYPE
    iot$tape_completion_codes = 1 .. ioc$tape_completion_code_max;

  TYPE
    iot$tape_io_status = RECORD
      case io_complete: boolean of
      = TRUE =
        write_ring,
        end_of_tape,
        beginning_of_tape,
        unit_busy,
        unit_ready,
        wait_selected: boolean,
        unit_density: rmt$density,  {Density not valid on status after write/read, or if not off load point.
                                    {Used in tape_scanner on rewind status after label read.
        residual_block_count: iot$tape_block_count,
        case normal_completion: boolean of
        = TRUE =
          ,
        = FALSE =
          long_input_block,
          position_uncertain: boolean,
          completion_code: iot$tape_completion_codes,
        casend,
      = FALSE =
        ,
      casend,
    RECEND;

*copyc IOT$TAPE_BLOCK_COUNT
*copyc IOT$TAPE_COMMAND_TABLE_ENTRY
*copyc IOT$TAPE_REQUEST_TYPES
*copyc RMT$DENSITY
