summaryrefslogtreecommitdiff
path: root/function.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2015-02-19 01:32:45 -0500
committerRusty Wagner <rusty@vector35.com>2015-02-19 01:32:45 -0500
commit584e4d244a9124f6ec403162994434ff085e9c5d (patch)
tree1df2fd7d9f6f38f3217b596772c2866b2e12d606 /function.cpp
parent3f36f01667138e248d030701b9c0c047c1c7f5d7 (diff)
Add APIs for accessing function information
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;
+}