
  TYPE
    cmt$logical_pp_table = ARRAY [1 .. *] OF cmt$logical_pp_table_entry,

    cmt$logical_pp_table_entry = RECORD
      flags: cmt$logical_pp_flags,
      pp_info: cmt$logical_pp_info,
      controller_info: cmt$logical_pp_controller,
      task_info: cmt$logical_pp_task_info,
      handlers: cmt$logical_pp_handlers,
      active_check: cmt$logical_pp_active_check,
    RECEND,

    cmt$logical_pp_active_check = RECORD
      timestamp: integer,
      timeout: integer,
    RECEND,

    cmt$logical_pp_controller = RECORD
      controlware_loaded: boolean,
      control_module_loaded: boolean,
      controller_type: cmt$controller_type,
    RECEND,

    cmt$logical_pp_flags = RECORD
      configured: boolean,
      resources_acquired: boolean,
      pp_loaded: boolean,
      disabled: boolean,
      entry_in_use: boolean,
      entry_reserved_by_nosve: boolean,
      entry_reserved_by_other: boolean,
      entry_reserved_by_system_job: boolean,
      reservd_by_other_has_ch_present: boolean,
      pp_hung: boolean,
      pp_idle_resume_supported: boolean,
      pp_handshaking_supported: boolean,
      pp_reload_supported: boolean,
    RECEND,

    cmt$logical_pp_handlers = RECORD
      response_handler_p: cmt$response_handler,
      one_word_response_allowed: boolean,
      one_word_response_handler_p: dft$one_word_response_handler,
    RECEND,

    cmt$logical_pp_info = RECORD
      physical_pp: dst$iou_resource,
      logical_partner_pp_index: iot$pp_number,
      pp_type: cmt$logical_pp_type,
      pp_interface_table_rma: ost$real_memory_address,
      pp_interface_table_p: ^iot$pp_interface_table,
      pp_communication_buffer_p: ^iot$communication_buffer,
      channel: dst$iou_resource,
      channel_port: cmt$channel_port,
      channel_interlock_p: ^iot$channel_interlock_table,
      driver_code_p: ^SEQ ( * ),
      driver_name: dst$driver_name,
      cip_driver_name: dst$driver_name,
      saved_io_request_p: ^iot$io_request,
    RECEND,

    cmt$logical_pp_task_info = RECORD
      gtid: ost$global_task_id,
      reserved_job_name: jmt$system_supplied_name,
    RECEND,

    cmt$logical_pp_type = (cmc$lpt_null_pp_type, cmc$lpt_other_pp_type, cmc$lpt_disk_pp_type,
          cmc$lpt_tape_pp_type, cmc$lpt_network_pp_type, cmc$lpt_nad_pp_type);

*copyc cmt$channel_port
*copyc cmt$controller_type
*copyc cmt$response_handler
*copyc dft$one_word_response_handler
*copyc dst$driver_name
*copyc dst$iou_resource
*copyc iot$channel_interlock_table
*copyc iot$io_request
*copyc iot$pp_interface_table
*copyc iot$pp_number
*copyc jmt$system_supplied_name
*copyc ost$global_task_id
*copyc ost$hardware_subranges
