Project

General

Profile

Diag » History » Revision 5

Revision 4 (laforge, 12/17/2016 10:33 AM) → Revision 5/16 (laforge, 12/17/2016 10:40 AM)

{{>toc}} 

 h1. Diag 

 h2. Acronyms 

 |DCI|Diag Consumer Interface| 

 h2. Child Pages 

 {{child_pages()}} 

 h2. Kernel support 

 See [[Qualcomm_Kernel#diag]] 

 h2. Library 

 There is @/usr/lib/libdiag.so.1@ which is linked by virtually any Qualcomm or Quectel proprietary program running on the Linux in the Modem. 

 it offers the follwing symbols: 
 <pre> 

 4af43a7c g      DF .text»·0000014c    Base          log_submit 
 4af4d128 g      DO .data»·000001d0    Base          pools 
 4af40578 g      DF .text»·0000000c    Base          diag_vote_md_real_time 
 4af45f54 g      DF .text»·000000b0    Base          DiagSvc_Free 
 4af42f98 g      DF .text»·000000ec    Base          diag_dci_get_real_time_status_proc 
 4af45278 g      DF .text»·00000080    Base          diagpkt_subsys_get_delayed_rsp_id 
 4af456f8 g      DF .text»·000001cc    Base          diagpkt_subsys_alloc_v2 
 4af3fed4 g      DF .text»·00000450    Base          diag_read_mask_file_list 
 4af4515c g      DF .text»·00000020    Base          diagpkt_subsys_get_cmd_code 
 4af436f8 g      DF .text»·00000024    Base          Diag_LSM_Event_DeInit 
 4af3cd80 g      DF .text»·00000174    Base          diag_wakelock_init 
 4af4ecf8 g      DO .data»·000001f4    Base          mask_file2 
 4b044b30 g      DO .bss»··00000004    Base          cleanup_mask 
 4af41f54 g      DF .text»·00000160    Base          diag_register_dci_client 
 4af4eeec g      DO .data»·000001f4    Base          mask_file 
 4af444e8 g      DF .text»·000000e8    Base          msg_send_var 
 4af458c4 g      DF .text»·000000ac    Base          diagpkt_subsys_alloc_v2_delay 
 4b044b5c g      DO .bss»··00000004    Base          log_to_memory 
 4af453f4 g      DF .text»·000000b8    Base          diagpkt_alloc 
 4b025b98 g      DO .bss»··00000004    Base          db_thread_initialized 
 4af3bacc g      DF .init»·00000000    Base          _init 
 4b044a28 g      DO .bss»··00000030    Base          stop_cond 
 4af41808 g      DF .text»·00000110    Base          diag_hdlc_toggle 
 4af3cf5c g      DF .text»·000000b0    Base          diag_wakelock_acquire 
 4b044b6c g      DO .bss»··00000004    Base          parser_state 
 4b044b60 g      DO .bss»··00000004    Base          num_bytes_read 
 4af43884 g      DF .text»·00000054    Base          log_update_dci_mask 
 4af40324 g      DF .text»·00000004    Base          send_mask_modem 
 4af4f310 g      DO .data»·00000004    Base          qsr4_db_file_fd 
 4b0448c8 g      DO .bss»··00000098    Base          qsr4_db_write_buf_pool 
 4af4342c g      DF .text»·0000005c    Base          event_update_mask 
 4af3c2b0 g      DF .text»·00000014    Base          mask_sync_initialize 
 4b042e00 g      DO .bss»··00001388    Base          file_name_curr 
 4af445d0 g      DF .text»·00000264    Base          msg_sprintf 
 4af4e910 g      DO .data»·000001f4    Base          mask_file_mdm2 
 4af435a8 g      DF .text»·000000f0    Base          event_report_payload 
 4af46088 g      DF .text»·00000098    Base          DiagSvc_Malloc_Init 
 4af42190 g      DF .text»·00000194    Base          diag_release_dci_client 
 4af3ccb0 g      DF .text»·00000054    Base          update_sync_mask 
 4af3f934 g      DF .text»·0000014c    Base          diag_send_socket_data 
 4af420b4 g      DF .text»·00000094    Base          diag_register_dci_stream_proc 
 4af45e68 g      DF .text»·000000ec    Base          DiagSvc_Malloc 
 4b044a58 g      DO .bss»··00000028    Base          buffer_init 
 4af4bfd8 g      DO .rodata»·······00000004    Base          msg_mask_tbl_size 
 4b025b8c g      DO .bss»··00000004    Base          curr_write_idx 
 4af46834 g      DF .text»·00000094    Base          diag_logger_flush 
 4b044aa8 g      DO .bss»··00000028    Base          pool0_buffers 
 4af43bc8 g      DF .text»·0000000c    Base          log_set_length 
 4b044b7c g      DO .bss»··00000001    Base          hdlc_disabled 
 4af4f314 g      DO .data»·00000028    Base          fd_qsr4_xml 
 4af4d394 g      DO .data»·000001f4    Base          qsr4_xml_file_name 
 4af45c30 g      DF .text»·00000238    Base          diagpkt_LSM_process_request 
 4af40680 g      DF .text»·0000000c    Base          diag_get_real_time_status 
 4af44d70 g      DF .text»·00000100    Base          Diag_LSM_Pkt_DeInit 
 4af40864 g      DF .text»·000004f4    Base          flush_buffer 
 4af40494 g      DF .text»·00000018    Base          diag_callback_send_data 
 4b044188 g      DO .bss»··00000200    Base          dci_cumulative_event_mask 
 4b044b44 g      DO .bss»··00000004    Base          dci_transaction_id 
 4af42940 g      DF .text»·0000010c    Base          diag_get_health_stats_proc 
 4b044b10 g      DO .bss»··00000018    Base          stop_mutex 
 4af42a4c g      DF .text»·0000002c    Base          diag_get_health_stats 
 4af43a68 g      DF .text»·00000014    Base          log_free 
 4af4eb04 g      DO .data»·000001f4    Base          mask_file_mdm 
 4af452f8 g      DF .text»·00000080    Base          diagpkt_subsys_reset_delayed_rsp_id 
 4af46418 g      DF .text»·00000210    Base          diag_logger_init 
 4af3c2c4 g      DF .text»·00000040    Base          dummy_handler 
 4af3f870 g      DF .text»·000000c4    Base          diag_send_data 
 4af488ac g      DF .text»·00000234    Base          diag_kill_qshrink4_threads 
 4af41b20 g      DF .text»·0000002c    Base          ts_get_lohi 
 4af45378 g      DF .text»·0000007c    Base          diagpkt_subsys_set_rsp_cnt 
 4af482b4 g      DF .text»·00000030    Base          diag_notify_parser_thread 
 4af42c88 g      DF .text»·000000f8    Base          diag_disable_all_logs 
 4af45a2c g      DF .text»·00000204    Base          diagpkt_commit 
 4b0238e4 g      DO .bss»··00000004    Base          proc_type 
 4af42670 g      DF .text»·00000160    Base          diag_log_stream_config 
 4af43c28 g      DF .text»·00000034    Base          log_status 
 4af4415c g      DF .text»·000000a4    Base          msg_send 
 4af3e4b0 g      DF .text»·00000470    Base          WriteToDisk 
 4af43d04 g      DF .text»·00000050    Base          Diag_LSM_Log_DeInit 
 4af4f2d4 g      DO .data»·00000004    Base          fd_dev 
 4af43084 g      DF .text»·0000000c    Base          diag_dci_get_real_time_status 
 4b0449c4 g      DO .bss»··00000032    Base          qsr4_db_cmd_req_buf 
 4af45694 g      DF .text»·00000064    Base          diagpkt_subsys_alloc 
 4af3cc64 g      DF .text»·0000004c    Base          get_sync_mask 
 4af425bc g      DF .text»·000000a8    Base          diag_get_dci_support_list_proc 
 4af40584 g      DF .text»·000000fc    Base          diag_get_real_time_status_proc 
 4b044af8 g      DO .bss»··00000018    Base          qsr4_read_db_mutex 
 4b044388 g      DO .bss»··000001f4    Base          dir_name 
 4af3d210 g      DF .text»·0000005c    Base          diag_set_socket_fd 
 4af4115c g      DF .text»·0000001c    Base          diag_switch_logging_proc 
 4af45124 g      DF .text»·0000000c    Base          diagpkt_get_cmd_code 
 4af4517c g      DF .text»·00000080    Base          diagpkt_subsys_get_status 
 4b044b58 g      DO .bss»··00000004    Base          in_read 
 4af43698 g      DF .text»·00000060    Base          Diag_LSM_Event_Init 
 4b044b48 g      DO .bss»··00000004    Base          diag_dci_error_type 
 4af42d80 g      DF .text»·000000f8    Base          diag_disable_all_events 
 4b044960 g      DO .bss»··00000064    Base          pid_file 
 4b044b70 g      DO .bss»··00000004    Base          qsr4_db_parser_thread_hdl 
 4b044b68 g      DO .bss»··00000004    Base          num_dci_proc 
 4b025b84 g      DO .bss»··00000004    Base          in_wait_for_peripheral_status 
 4b044b78 g      DO .bss»··00000004    Base          write_in_progress 
 4af44d34 g      DF .text»·0000003c    Base          Diag_LSM_Pkt_Init 
 4af4d328 g      DO .data»·00000004    Base          max_file_size 
 4af41a18 g      DF .text»·00000108    Base          ts_get 
 4af42b80 g      DF .text»·00000108    Base          diag_get_event_status 
 4af43bfc g      DF .text»·00000014    Base          log_set_timestamp 
 4b044b34 g      DO .bss»··00000004    Base          curr_read 
 4af43090 g      DF .text»·000000b4    Base          diag_register_dci_signal_data 
 4af45970 g      DF .text»·00000040    Base          diagpkt_shorten 
 4b025b90 g      DO .bss»··00000004    Base          curr_read_idx 
 4b044ad0 g      DO .bss»··00000028    Base          pool1_buffers 
 4af41d38 g      DF .text»·0000021c    Base          lookup_pkt_rsp_transaction 
 4b0238f0 g      DO .bss»··00000004    Base          diag_disable_console 
 4af4d320 g      DO .data»·00000004    Base          max_file_num 
 4af42324 g      DF .text»·00000298    Base          diag_send_dci_async_req 
 4af43c10 g      DF .text»·0000000c    Base          log_get_length 
 4af45130 g      DF .text»·0000000c    Base          diagpkt_set_cmd_code 
 4af451fc g      DF .text»·0000007c    Base          diagpkt_subsys_set_status 
 4af41744 g      DF .text»·000000c4    Base          diag_peripheral_buffering_drain_immediate 
 4b044770 g      DO .bss»··00000155    Base          event_mask 
 4af439b4 g      DF .text»·000000b4    Base          log_commit 
 4af4d324 g      DO .data»·00000004    Base          min_file_size 
 4b02394c g      DO .bss»··00000004    Base          gdwClientID 
 4af44200 g      DF .text»·000000b4    Base          msg_send_ts 
 4b044b74 g      DO .bss»··00000004    Base          read_thread_hdl 
 4af3d26c g      DF .text»·0000004c    Base          valid_token 
 4af41918 g      DF .text»·0000005c    Base          add_guid_to_qshrink4_header 
 4b03e240 g      DO .bss»··00004bc0    Base          msg_mask 
 4b0238f4 g      DO .bss»··00000028    Base          file_list_size 
 4af43bd4 g      DF .text»·0000001c    Base          log_shorten 
 4af45a18 g      DF .text»·00000014    Base          diagpkt_free 
 4af4f2d8 g      DO .data»·00000008    Base          fd_socket 
 4b044b54 g      DO .bss»··00000004    Base          flush_log 
 4af482e4 g      DF .text»·000002b4    Base          create_diag_qshrink4_db_parser_thread 
 4af3fb3c g      DF .text»·00000398    Base          diag_read_mask_file 
 4af43144 g      DF .text»·000000ac    Base          diag_deregister_dci_signal_data 
 4b044b64 g      DO .bss»··00000004    Base          num_dci_clients_event 
 4af4d358 g      DO .data»·0000003c    Base          proc_name 
 4af41d10 g      DF .text»·00000028    Base          diag_lsm_dci_deinit 
 4af3d00c g      DF .text»·000000b0    Base          diag_wakelock_release 
 4b025ba0 g      DO .bss»··000186a0    Base          read_buffer 
 4af4513c g      DF .text»·00000020    Base          diagpkt_subsys_get_id 
 4b04457c g      DO .bss»··000001f4    Base          peripheral_name 
 4af411a4 g      DF .text»·0000042c    Base          Diag_LSM_Init 
 4af415d0 g      DF .text»·00000174    Base          diag_configure_peripheral_buffering_tx_mode 
 4b044b38 g      DO .bss»··00000004    Base          curr_write 
 4af404ac g      DF .text»·00000018    Base          diag_callback_send_data_hdlc 
 4af448dc g      DF .text»·000000ac    Base          qsr_msg_send_1 
 4af44988 g      DF .text»·000000b4    Base          qsr_msg_send_2 
 4b044b3c g      DO .bss»··00000004    Base          db_write_thread_hdl 
 4af44bd4 g      DF .text»·00000024    Base          Diag_LSM_Msg_Init 
 4af44a3c g      DF .text»·000000bc    Base          qsr_msg_send_3 
 4af4d2f8 g      DO .data»·00000028    Base          token_list 
 4af3d148 g      DF .text»·00000054    Base          diag_has_remote_device 
 4af3f754 g      DF .text»·0000011c    Base          diag_register_remote_callback 
 4b025b88 g      DO .bss»··00000004    Base          in_write 
 4b02391c g      DO .bss»··00000028    Base          file_list 
 4af46120 g      DF .text»·00000238    Base          process_incoming_data 
 4af3d3d4 g      DF .text»·000002dc    Base          delete_log 
 4af3d6b0 g      DF .text»·00000e00    Base          log_to_device 
 4af4d354 g      DO .data»·00000004    Base          logging_mode 
 4af43bf0 g      DF .text»·0000000c    Base          log_set_code 
 4af454ac g      DF .text»·000001e8    Base          diagpkt_delay_commit 
 4b044b50 g      DO .bss»··00000004    Base          flush_in_progress 
 4af431f0 g      DF .text»·00000064    Base          diag_send_to_output 
 4af3d0bc g      DF .text»·00000008    Base          diag_get_max_channels 
 4af43c5c g      DF .text»·000000a8    Base          Diag_LSM_Log_Init 
 4af4f0e0 g      DO .data»·000001f4    Base          file_name_del 
 4b023944 g      DO .bss»··00000004    Base          uart_logging_proc 
 4af46004 g      DF .text»·00000084    Base          DiagSvc_Malloc_Exit 
 4af4d588 g      DO .data»·00001388    Base          output_dir 
 4af427d0 g      DF .text»·00000170    Base          diag_event_stream_config 
 4af4068c g      DF .text»·000001d8    Base          Diag_LSM_DeInit 
 4af44e70 g      DF .text»·000002b4    Base          diagpkt_tbl_reg 
 4af42e78 g      DF .text»·00000120    Base          diag_dci_vote_real_time 
 4b025b94 g      DO .bss»··00000004    Base          kill_thread 
 4b023948 g      DO .bss»··00000004    Base          count_written_bytes_1 
 4af44834 g      DF .text»·000000a8    Base          qsr_msg_send 
 4af434f4 g      DF .text»·000000b4    Base          event_report 
 4af4f30c g      DO .data»·00000004    Base          diag_fd 
 4af43488 g      DF .text»·0000006c    Base          event_update_dci_mask 
 4af42664 g      DF .text»·0000000c    Base          diag_get_dci_support_list 
 4af437d8 g      DF .text»·000000ac    Base          log_update_mask 
 4af48598 g      DF .text»·00000314    Base          parse_data_for_qsr4_db_file_op_rsp 
 4af4d32c g      DO .data»·00000028    Base          file_list_index 
 4b0238ec g      DO .bss»··00000004    Base          rename_file_names 
 4af3f694 g      DF .text»·000000c0    Base          diag_register_callback 
 4af41b84 g      DF .text»·0000018c    Base          diag_lsm_dci_init 
 4af404c4 g      DF .text»·000000b4    Base          diag_vote_md_real_time_proc 
 4af442b4 g      DF .text»·000000b4    Base          msg_send_1 
 4af44368 g      DF .text»·000000bc    Base          msg_send_2 
 4af44424 g      DF .text»·000000c4    Base          msg_send_3 
 4af3cf48 g      DF .text»·00000014    Base          diag_is_wakelock_init 
 4b044b4c g      DO .bss»··00000004    Base          disk_write_hdl 
 4af3d19c g      DF .text»·00000074    Base          diag_register_socket_cb 
 4af44c10 g      DF .text»·000000c0    Base          msg_update_mask 
 4af41974 g      DF .text»·00000014    Base          diag_set_peripheral_mask 
 4af438d8 g      DF .text»·000000dc    Base          log_alloc 
 4b044b40 g      DO .bss»··00000004    Base          dci_client_tbl 
 4af3cd04 g      DF .text»·0000007c    Base          do_mask_sync 
 4b044b7d g      DO .bss»··00000001    Base          write_qshrink_header 
 4af4f2e0 g      DO .data»·00000004    Base          fd_uart 
 4af44af8 g      DF .text»·000000dc    Base          qsr_msg_send_var 
 4b044b28 g      DO .bss»··00000008    Base          periph_info 
 4af468c8 g      DF .text»·00000074    Base          diag_logger_exit 
 4af3fa80 g      DF .text»·000000bc    Base          send_empty_mask 
 4b023954 g      DO .bss»··00000004    Base          gnDiag_LSM_Event_Initialized 
 4af459b0 g      DF .text»·00000068    Base          diagpkt_err_rsp 
 4af46628 g      DF .text»·0000020c    Base          diag_logger_write 
 4af42a78 g      DF .text»·00000108    Base          diag_get_log_status 
 4b0449f8 g      DO .bss»··00000030    Base          qsr4_read_db_cond 
 4b0238e8 g      DO .bss»··00000004    Base          rename_dir_name 
 4af3cef4 g      DF .text»·00000054    Base          diag_wakelock_destroy 
 4af42148 g      DF .text»·00000048    Base          diag_register_dci_stream 
 4af43c1c g      DF .text»·0000000c    Base          log_get_code 
 4af4f348 g      DO .data.rel.ro.local»····00000120    Base          msg_mask_tbl 
 4af44bf8 g      DF .text»·00000018    Base          Diag_LSM_Msg_DeInit 
 4af3d0c4 g      DF .text»·00000084    Base          to_integer 
 4af48e08 g      DF .fini»·00000000    Base          _fini 
 4af3d2b8 g      DF .text»·0000011c    Base          diag_get_peripheral_name_from_mask 
 4b044a80 g      DO .bss»··00000028    Base          count_written_bytes 
 4af41178 g      DF .text»·0000002c    Base          diag_switch_logging 
 4af4f2e4 g      DO .data»·00000028    Base          fd_md 
 </pre> 

 h3. Logging Service API 

 This is about sending log messages via the Diag interface. 

 |_.Function|_.Purpose| 
 |log_alloc(u16 code, len)|Allocate a buffer + fill header| 
 |log_shorten(ptr, len)|Shorten the length of a previously allocated buffer| 
 |log_commit(ptr)|Send the log to diag| 
 |log_free(ptr)|Free a buffer previously allocated with log_alloc()| 
 |log_submit(ptr)|Convenience wrapper around log_alloc()/memcpy()/log_commit()| 

 h3. Diag Consumer Interface 

 This seems to be about implementing a program that consumes Diag events. You can register to certain events/masks and then receive the related information in call-backs. 

Add picture from clipboard (Maximum size: 48.8 MB)