Note:
___________________________________________________________________________________
__________________________________________________
1. pfn_database.json have two section: 1. assignment and 2. calls
2.
Steps to follow:
___________________________________________________________________________________
__________________________________________________
1. find <function_name>.
2. find callx8
3. scroll up and find function call line and file name and line number.
4. Now go to pfn_database.json
5. Got to call section and search for file_name.
6. go to that dict, having same file name and line number.
7. You will find the ptr_type = xyz there.
8. search xyz in assignment section.
9. you will get multiple, one is correct, rest will come as black list.
10. then select function key from dict and this will be actual function, and
details of this function is in dis file.
Example:
___________________________________________________________________________________
__________________________________________________
Let's take example of function: <tmrrRouter_ProcessSubChDecLink+0x32>
find callx8:
/opt/samba/nxf46137/radiosystems/build/hifi5-es2-dbg/lib/dabCtrlLib/comps/
tmrrRouter/../../../../../../lib/dabCtrlLib/comps/tmrrRouter/src/tmrrRouter.c:429
      prcState |= p_SubChDecEntryLink[idx]-
>pfn_subChDecDataIn(p_SubChDecEntryLink[idx], k_Sync, k_SubChId, p_subChData,
k_Size, k_actionType, &p_Inst->subChDecLinkResultHdl);
222aca04:   0a98                                     l32i.n      a9, a10, 0
222aca06:   0179                                     s32i.n      a7, a1, 0
222aca08:   0009e0                                         callx8      a9
called function pointer : prcState |= p_SubChDecEntryLink[idx]-
>pfn_subChDecDataIn(p_SubChDecEntryLink[idx], k_Sync, k_SubChId, p_subChData,
k_Size, k_actionType, &p_Inst->subChDecLinkResultHdl);
file name:
radiosystems/build/hifi5-es2-dbg/lib/dabCtrlLib/comps/tmrrRouter/../../../../../../
lib/dabCtrlLib/comps/tmrrRouter/src/tmrrRouter.c
line number : 429
go to pfn_database.json file and search in call section : tmrrRouter.c
now under result search for line number : 429
            {
                 "file": "tmrrRouter.c",
                 "line": 429,
                 "ptr_type": "pfn_SubChDecoderDataIn"
            }
function pointer type is : pfn_SubChDecoderDataIn
now search the function pointer type in assignment section : pfn_SubChDecoderDataIn
Found results:
1.          {
                 "file": "handleSinkPktDgTpegToHost.c",
                 "ptr_type": "pfn_SubChDecoderDataIn",
                 "function": "process_SinkPktDgTpegToHost",
                 "dbg_assign_type": 40,
                 "dbg_ast_adr": "0x080f2ce0"
            }
2.          {
                 "file": "handleDecTDmb.c",
                 "ptr_type": "pfn_SubChDecoderDataIn",
                 "function": "process_DecTDmb",
                 "dbg_assign_type": 40,
                 "dbg_ast_adr": "0x0ba80e20"
            }
3.          {
                 "file": "handleDecMusicam.c",
                 "ptr_type": "pfn_SubChDecoderDataIn",
                 "function": "process_DecMusicam",
                 "dbg_assign_type": 40,
                 "dbg_ast_adr": "0x1cb1c180"
            }
4.          {
                 "file": "tmrrRouter_GlobalResources.c",
                 "ptr_type": "pfn_SubChDecoderDataIn",
                 "function": "process_DecMusicam",
                 "dbg_assign_type": 10,
                 "dbg_ast_adr": "0x31ea1e00"
            }
5.          {
                 "file": "tmrrRouter_GlobalResources.c",
                 "ptr_type": "pfn_SubChDecoderDataIn",
                 "function": "process_DecDabPlus",
                 "dbg_assign_type": 10,
                 "dbg_ast_adr": "0x31ea2158"
            }
6.    {
          "file": "tmrrRouter_GlobalResources.c",
          "ptr_type": "pfn_SubChDecoderDataIn",
          "function": "process_DecTDmb",
          "dbg_assign_type": 10,
          "dbg_ast_adr": "0x31ea2438"
      }
7.    {
          "file": "tmrrRouter_GlobalResources.c",
          "ptr_type": "pfn_SubChDecoderDataIn",
          "function": "process_DecTDmb",
          "dbg_assign_type": 10,
          "dbg_ast_adr": "0x31ea27a8"
      }
8.    {
          "file": "tmrrRouter_GlobalResources.c",
          "ptr_type": "pfn_SubChDecoderDataIn",
          "function": "process_DecPacketData",
          "dbg_assign_type": 10,
          "dbg_ast_adr": "0x31ea2b78"
      }
9.    {
          "file": "handleSinkPad.c",
          "ptr_type": "pfn_SubChDecoderDataIn",
          "function": "process_SinkPad",
          "dbg_assign_type": 40,
          "dbg_ast_adr": "0x256d6bd0"
      }
10.   {
          "file": "handleSinkSrcDec.c",
          "ptr_type": "pfn_SubChDecoderDataIn",
          "function": "process_SinkSrcDec",
          "dbg_assign_type": 40,
          "dbg_ast_adr": "0x026ff390"
      }
11.   {
          "file": "handleSinkSrcDec.c",
          "ptr_type": "const pfn_SubChDecoderDataIn",
          "function": "process_SinkSrcDec",
          "dbg_assign_type": 40,
          "dbg_ast_adr": "0x027d2e10"
      }
12.   {
          "file": "handleDecPacketData.c",
          "ptr_type": "pfn_SubChDecoderDataIn",
          "function": "process_DecPacketData",
          "dbg_assign_type": 40,
          "dbg_ast_adr": "0x372c3f30"
      }
13.   {
          "file": "handleSinkDataToHost.c",
          "ptr_type": "pfn_SubChDecoderDataIn",
                "function": "process_SinkDataToHost",
                "dbg_assign_type": 40,
                "dbg_ast_adr": "0x244f0e60"
            }
14.        {
                "file": "handleDecDabPlus.c",
                "ptr_type": "pfn_SubChDecoderDataIn",
                "function": "process_DecDabPlus",
                "dbg_assign_type": 40,
                "dbg_ast_adr": "0x1466c540"
            }
15.        {
                "file": "tmrrRouterTb_Select.c",
                "ptr_type": "pfn_SubChDecoderDataIn",
                "function": "process_DecMusicam",
                "dbg_assign_type": 10,
                "dbg_ast_adr": "0x0dae67e0"
            }
Total potential candidates : 15 ("function": name_of_function)
1 will be correct and 14 will be in black list.
Taking example of 14th potential candidate:
search him in dis file and get the size and create the call graph with size:
<process_DecDabPlus>
searched details:
222acb98 <process_DecDabPlus>:
process_DecDabPlus():
/opt/samba/nxf46137/radiosystems/build/hifi5-es2-dbg/lib/dabCtrlLib/comps/
tmrrRouter/../../../../../../lib/dabCtrlLib/comps/tmrrRouter/src/
handleDecDabPlus.c:190
  return prcState;
}
uint32_t process_DecDabPlus(void *p_inst, const bool k_Sync, const uint8_t
k_SubChId, uint8_t *p_data, const uint32_t k_Size,
                            const SubChDecLinkActionType k_actionType, void*
p_SubChDecLink_ResultHandler)
{
222acb98:   020136                                         entry a1, 0x100
222acb9b:   2f6142                                         s32i a4, a1, 188
222acb9e:   06bd                                     mov.n a11, a6
/opt/samba/nxf46137/radiosystems/build/hifi5-es2-dbg/lib/dabCtrlLib/comps/
tmrrRouter/../../../../../../lib/dabCtrlLib/comps/tmrrRouter/src/
handleDecDabPlus.c:194
  uint32_t                  prcState = (uint32_t)PRC_STATE_OK;
  if (k_Size < AAC_HEADER_LENGTH) // must be > AAC header
  {
    DS_DEBUG_PRINT_2(print_domain_router, DABPL_DEC_VERBOSE_ERROR, "subChSize
mismatch %d\n", k_Size);
222acba0:   6f9f41                                         l32r a4, 22288a1c
(11240279 <system_tracing_enable_printing_print_domain_router>)
222acba3:   cf0c                                     movi.n      a15, 12
222acba5:   026d                                     mov.n a6, a2
222acba7:   336132                                         s32i a3, a1, 204
222acbaa:   020c                                     movi.n      a2, 0
/opt/samba/nxf46137/radiosystems/build/hifi5-es2-dbg/lib/dabCtrlLib/comps/
tmrrRouter/../../../../../../lib/dabCtrlLib/comps/tmrrRouter/src/
handleDecDabPlus.c:192
  if (k_Size < AAC_HEADER_LENGTH) // must be > AAC header
222acbac:   163fb7                                         bltu a15, a11, 222acbc6
<process_DecDabPlus+0x2e>
/opt/samba/nxf46137/radiosystems/build/hifi5-es2-dbg/lib/dabCtrlLib/comps/
tmrrRouter/../../../../../../lib/dabCtrlLib/comps/tmrrRouter/src/
handleDecDabPlus.c:194
    DS_DEBUG_PRINT_2(print_domain_router, DABPL_DEC_VERBOSE_ERROR, "subChSize
mismatch %d\n", k_Size);
222acbaf:   0020c0                                         memw
222acbb2:   000432                                         l8ui a3, a4, 0
222acbb5:   80a022                                         movi a2, 128
222acbb8:   6fcba1                                         l32r a10, 22288ae4
(800254c0 <process_DecDabPlus.printing_context>)
222acbbb:   b38c                                     beqz.n      a3, 222acbca
<process_DecDabPlus+0x32>
222acbbd:   6d3b81                                         l32r a8, 222880ac
(222dc530 <C_DabHifiSubsystem_PrintArray2>)
222acbc0:   0008e0                                         callx8      a8
222acbc3:   0000c6                                         j     222acbca
<process_DecDabPlus+0x32>