summaryrefslogtreecommitdiff
path: root/function.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'function.cpp')
-rw-r--r--function.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/function.cpp b/function.cpp
new file mode 100644
index 00000000..db99b97d
--- /dev/null
+++ b/function.cpp
@@ -0,0 +1,41 @@
+#include "binaryninjaapi.h"
+
+using namespace BinaryNinja;
+using namespace std;
+
+
+Function::Function(BNFunction* func): m_func(func)
+{
+}
+
+
+Function::~Function()
+{
+ BNFreeFunction(m_func);
+}
+
+
+Ref<Architecture> Function::GetArchitecture() const
+{
+ return new CoreArchitecture(BNGetFunctionArchitecture(m_func));
+}
+
+
+uint64_t Function::GetStart() const
+{
+ return BNGetFunctionStart(m_func);
+}
+
+
+vector<Ref<BasicBlock>> Function::GetBasicBlocks() const
+{
+ size_t count;
+ BNBasicBlock** blocks = BNGetFunctionBasicBlockList(m_func, &count);
+
+ vector<Ref<BasicBlock>> result;
+ for (size_t i = 0; i < count; i++)
+ result.push_back(new BasicBlock(BNNewBasicBlockReference(blocks[i])));
+
+ BNFreeBasicBlockList(blocks, count);
+ return result;
+}