PROCEDURE dum$display_df_buffer, display_df_buffer, disdfb (
    p_buffer: integer = $required
    remote_procedure_call, rpc: boolean = false
    monitor_entry, me: boolean = false
    output, o: file = $output
    status)

 " This displays the file server send or receive buffer.
 " The parameter remote_procedure_call is used to determine on STATUS
 "   buffers whether to look for a remote procedure call header
 " This proc uses RJTs newest dump analyzer
 " This assumes that   dfm$client_remote_procedur_call,
 " dfm$test_remote_procedure_call, and dfm$manage_client_connection have been
 " added.

   current = $default_module
   chadm dfm$client_remote_procedur_call
   set_file_attributes output fc=legible pf=continuous
   out = output.$eoi

 IF remote_procedure_call THEN
   remote_procedure_call_test = ($pv(?p_buffer.dft$buffer_header.remote_processor) = ..
          DFC$RPC_RESTARTABLE_TEST) OR ..
    ($pv(?p_buffer.dft$buffer_header.remote_processor) = ..
        DFC$RPC_UNRESTARTABLE_TEST)
 IFEND

 buffer_header_size = $pv(#size(0.dft$Buffer_header))
 rpc_buffer_header_size = $pv(#size(0.dft$rpc_buffer_header))
 rpc_response_buffer_header_size = $pv(#size(0.dft$rpc_response_buffer_header))
 mtr_status_size = $pv(#size(0.syt$monitor_status))
 os_status_size = $pv(#size(0.ost$status))
 dispv ?p_buffer.dft$Buffer_header   o=out
 IF $pv(?p_buffer.dft$buffer_header.version)= 'CYBILRPC' THEN
     p_rpc_buffer= p_buffer + buffer_header_size
     dispv ?p_rpc_buffer.dft$rpc_buffer_header  o=out
     IF remote_procedure_call THEN
       IF remote_procedure_call_test THEN
         chadm dfm$test_remote_procedure_call
         p_test_header = p_rpc_buffer + rpc_buffer_header_size
         dispv ?p_test_header.dft$rpc_test_request_header   o=out
         chadm dfm$client_remote_procedur_call
       IFEND
     IFEND
 ELSEIF $pv(?p_buffer.dft$buffer_header.version)= 'STATUS' THEN
   p_mtr_status = p_buffer + buffer_header_size
   dispv ?p_mtr_status.syt$monitor_status   o=out
   IF $pv(?p_mtr_status.syt$monitor_status.normal) THEN
      p_rpc_buffer = p_mtr_status + mtr_status_size
     IF monitor_entry THEN
       chadm dfm$process_server_response
       dispv ?p_rpc_buffer.dft$page_io_response o=out
     IFEND
   ELSE " Abnormal status
     disv $condition_name($pv(?p_mtr_status.syt$monitor_status.condition))  o=out
     IF NOT monitor_entry THEN
       p_os_status =  p_mtr_status + mtr_status_size
       dispv ?p_os_status.ost$status    o=out
       p_rpc_buffer = p_os_status + os_status_size
     IFEND
   IFEND
   IF remote_procedure_call THEN
     dispv ?p_rpc_buffer.dft$rpc_response_buffer_header   o=out
     IF remote_procedure_call_test THEN
       chadm dfm$test_remote_procedure_call
       p_test_header = p_rpc_buffer + rpc_response_buffer_header_size
       dispv ?p_test_header.dft$rpc_test_request_header  o=out
       chadm dfm$client_remote_procedur_call
     IFEND
   IFEND
 ELSEIF $pv(?p_buffer.dft$buffer_header.version)= 'POLL_MSG' THEN
   chadm dfm$manage_client_connection
   poll_header_size = $pv(#size(0.dft$poll_header))
   p_poll_header = p_buffer + buffer_header_size
   dispv ?p_poll_header.dft$poll_header o=out
   IF ($pv(?p_buffer.dft$buffer_header.remote_processor) = DFC$VERIFY_QUEUE) ..
     OR ($pv(?p_buffer.dft$buffer_header.remote_processor) = DFC$VERIFY_QUEUE_REPLY) THEN
     p_queue_info = p_poll_header + poll_header_size
     dispv ?p_queue_info.dft$poll_queue_information o=out
   IFEND
 ELSEIF $pv(?p_buffer.dft$buffer_header.version)= 'ALLOCATE' THEN
   chadm dfm$process_server_response
   p_allocate_space_request = p_buffer + buffer_header_size
   dispv ?p_allocate_space_request.dft$page_io_request o=out
 ELSEIF $pv(?p_buffer.dft$buffer_header.version)= 'PAGEIO  ' THEN
   chadm dfm$process_server_response
   p_page_io_request = p_buffer + buffer_header_size
   dispv ?p_page_io_request.dft$page_io_request o=out
 IFEND

 chadm current
PROCEND dum$display_df_buffer


