PROCEDURE dum$display_queue_entry, display_queue_entry, disqe, display_queue, disq (
 queue_index, qi       : integer 1..16 = 1
 queue_entry_index, qei : any of
       integer 1..127
       key
         all
       keyend
   anyend    = all
 p_queue_interface_table, pva: integer 0..281474976710655 = 0
 display_option, do    :  key
    (driver, d)
    (cpu, c)
    (buffer, b)
    all
 keyend = all
 output, o              : file = $output
 status)

  " This proc displays the file server queue.
 "  This proc required RJTs most recent dump anlyzer.
 "  This proc assumes that dfm$Monitor_process, dfm$client_remote_procedur_call
 "  has been added.
 "  This proc defaults too the first p_queue_interface_table.
 " To determine if there is more than one queue interface table DO:
 "    display_queue_summary

  current = $default_module
  crev local_status status
  set_file_attributes output fc=legible pf=continuous
  chadm dfm$Monitor_process
  IF $file(output open_position) = '$BOI' THEN
    rewind_file output status=local_status
  IFEND
  out = output.$eoi
 "display_base_system_time (out)
  IF p_queue_interface_table= 0 THEN
    IF $nil_pva($pv(dfv$p_queue_interface_directory)) THEN
      putl ' Not using the server '  o=out
      exit_proc
    ELSE "default to the first queue interface table
      p_queue_interface_table = ..
        $pv(dfv$p_queue_interface_directory^[1].p_queue_interface_table)
    IFEND
  ELSE
    p_queue_interface_table = p_queue_interface_table
  IFEND
  IF $value_kind(queue_entry_index) = 'INTEGER' THEN
    first_queue_entry_index = queue_entry_index
    last_queue_entry_index = first_queue_entry_index
  ELSE  " ALL "
    first_queue_entry_index = 1
    last_queue_entry_index = $pv(?p_queue_interface_table.dft$queue_interface_table.queue_directory.driver_queue_pva_directory..
[?queue_index].p_driver_queue^.queue_header.number_of_queue_entries)
  IFEND

  " Display all selected queue entries
  FOR queue_entry_index = first_queue_entry_index TO last_queue_entry_index DO
    IF (display_options = DRIVER) OR (display_option = ALL) THEN
      disv '--  DRIVER QUEUE ENTRY ---'//$strrep(queue_index)//' '//$strrep(queue_entry_index)  o=out
     dispv ?p_queue_interface_table.dft$queue_interface_table.queue_directory.driver_queue_pva_directory..
[?queue_index].p_driver_queue^.queue_entries[?queue_entry_index]  o=out
     IF $pv(?p_queue_interface_table.dft$queue_interface_table.queue_directory.driver_queue_pva_directory..
[?queue_index].p_driver_queue^.queue_entries[?queue_entry_index].error_condition) <> 0 THEN
       display_esm_error $pv(?p_queue_interface_table.dft$queue_interface_table.queue_directory.driver_queue_pva_directory..
[?queue_index].p_driver_queue^.queue_entries[?queue_entry_index].error_condition) o=out
     IFEND
   IFEND
 monitor_entry = $pv(?p_queue_interface_table.dft$queue_interface_table.queue_directory.cpu_queue_pva_directory..
[?queue_index].p_cpu_queue^.queue_entries[?queue_entry_index].processor_type) = 'DFC$MONITOR'

    IF (display_option = CPU) OR (display_option = ALL) THEN
      disv '--- CPU QUEUE ENTRY ---'//$strrep(queue_index)//' '//$strrep(queue_entry_index)  o=out
      dispv ?p_queue_interface_table.dft$queue_interface_table.queue_directory.cpu_queue_pva_directory..
[?queue_index].p_cpu_queue^.queue_entries[?queue_entry_index]   o=out
      IF monitor_entry THEN
         p_server_iocb = $pv(?p_queue_interface_table.dft$queue_interface_table.queue_directory.cpu_queue_pva_directory..
[?queue_index].p_cpu_queue^.queue_entries[?queue_entry_index].p_server_iocb)
         IF NOT $nil_pva(p_server_iocb) THEN
           dispv ?p_server_iocb.mmt$server_iocb_entry o=out
        IFEND
      IFEND
    IFEND

    IF (display_option = BUFFER) OR (display_option = ALL) THEN
        p_send_buffer = $pv(?p_queue_interface_table.dft$queue_interface_table.queue_directory.cpu_queue_pva_directory..
[?queue_index].p_cpu_queue^.queue_entries[?queue_entry_index].p_send_buffer)

         p_receive_buffer = $pv(?p_queue_interface_table.dft$queue_interface_table.queue_directory.cpu_queue_pva_directory..
[?queue_index].p_cpu_queue^.queue_entries[?queue_entry_index].p_receive_buffer)

        chadm dfm$client_remote_procedur_call

        remote_procedure_call = ($pv(?p_send_buffer.dft$buffer_header.version)= 'CYBILRPC') OR ..
           ($pv(?p_receive_buffer.dft$buffer_header.version)= 'CYBILRPC')

       disv '   '   o=out
       disv '  ---- Send buffer '  o=out
       display_df_buffer p_send_buffer remote_procedure_call monitor_entry out

    disv '   '    o=out
    disv ' ----- Receive buffer '    o=out
   display_df_buffer p_receive_buffer remote_procedure_call  monitor_entry out
 IFEND
 FOREND

 chadm current
PROCEND dum$display_queue_entry
