MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / GetBoardDeviceAccesses

Method GetBoardDeviceAccesses

firmwareninja.cpp:577–609  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

575
576
577std::vector<FirmwareNinjaDeviceAccesses> FirmwareNinja::GetBoardDeviceAccesses(
578 const std::vector<FirmwareNinjaFunctionMemoryAccesses>& fma)
579{
580 std::vector<FirmwareNinjaDeviceAccesses> result;
581 if (fma.empty())
582 return result;
583
584 auto platform = m_view->GetDefaultPlatform();
585 if (!platform)
586 return result;
587
588 auto arch = platform->GetArchitecture();
589 if (!arch)
590 return result;
591
592 BNFirmwareNinjaFunctionMemoryAccesses** fmaArray = MemoryInfoVectorToArray(fma);
593 BNFirmwareNinjaDeviceAccesses* accesses;
594 int count = BNFirmwareNinjaGetBoardDeviceAccesses(m_object, fmaArray, fma.size(), &accesses, arch->GetObject());
595 FreeMemoryInfoArray(fmaArray, fma.size());
596 if (count <= 0)
597 return result;
598
599 result.reserve(count);
600 for (size_t i = 0; i < count; i++)
601 result.push_back({accesses[i].name, accesses[i].total, accesses[i].unique});
602
603 BNFirmwareNinjaFreeBoardDeviceAccesses(accesses, count);
604 sort(result.begin(), result.end(), [](const FirmwareNinjaDeviceAccesses& a, const FirmwareNinjaDeviceAccesses& b) {
605 return a.total > b.total;
606 });
607
608 return result;
609}
610
611
612Ref<FirmwareNinjaReferenceNode> FirmwareNinja::GetReferenceTree(

Callers

nothing calls this directly

Calls 10

MemoryInfoVectorToArrayFunction · 0.85
FreeMemoryInfoArrayFunction · 0.85
GetDefaultPlatformMethod · 0.80
push_backMethod · 0.80
emptyMethod · 0.45
GetArchitectureMethod · 0.45
sizeMethod · 0.45
GetObjectMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected