From ad05dd2072917e2487dcd34dbc249b2a0efac589 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Mon, 25 Jan 2016 15:16:43 -0500 Subject: Initial implementation of platform ABI classes --- binaryview.cpp | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'binaryview.cpp') diff --git a/binaryview.cpp b/binaryview.cpp index 9cf61bdc..b62d0290 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -645,6 +645,24 @@ void BinaryView::SetDefaultArchitecture(Architecture* arch) } +Ref BinaryView::GetDefaultPlatform() const +{ + BNPlatform* platform = BNGetDefaultPlatform(m_view); + if (!platform) + return nullptr; + return new Platform(platform); +} + + +void BinaryView::SetDefaultPlatform(Platform* platform) +{ + if (platform) + BNSetDefaultPlatform(m_view, platform->GetPlatformObject()); + else + BNSetDefaultPlatform(m_view, nullptr); +} + + BNEndianness BinaryView::GetDefaultEndianness() const { return BNGetDefaultEndianness(m_view); @@ -669,15 +687,15 @@ bool BinaryView::Save(FileAccessor* file) } -void BinaryView::AddFunctionForAnalysis(Architecture* arch, uint64_t addr) +void BinaryView::AddFunctionForAnalysis(Platform* platform, uint64_t addr) { - BNAddFunctionForAnalysis(m_view, arch->GetArchitectureObject(), addr); + BNAddFunctionForAnalysis(m_view, platform->GetPlatformObject(), addr); } -void BinaryView::AddEntryPointForAnalysis(Architecture* arch, uint64_t addr) +void BinaryView::AddEntryPointForAnalysis(Platform* platform, uint64_t addr) { - BNAddEntryPointForAnalysis(m_view, arch->GetArchitectureObject(), addr); + BNAddEntryPointForAnalysis(m_view, platform->GetPlatformObject(), addr); } @@ -687,9 +705,9 @@ void BinaryView::RemoveAnalysisFunction(Function* func) } -void BinaryView::CreateUserFunction(Architecture* arch, uint64_t start) +void BinaryView::CreateUserFunction(Platform* platform, uint64_t start) { - BNCreateUserFunction(m_view, arch->GetArchitectureObject(), start); + BNCreateUserFunction(m_view, platform->GetPlatformObject(), start); } @@ -725,9 +743,9 @@ bool BinaryView::HasFunctions() const } -Ref BinaryView::GetAnalysisFunction(Architecture* arch, uint64_t addr) +Ref BinaryView::GetAnalysisFunction(Platform* platform, uint64_t addr) { - BNFunction* func = BNGetAnalysisFunction(m_view, arch->GetArchitectureObject(), addr); + BNFunction* func = BNGetAnalysisFunction(m_view, platform->GetPlatformObject(), addr); if (!func) return nullptr; return new Function(func); -- cgit v1.3.1