summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 331fa1fb..891dcda0 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -611,4 +611,41 @@ namespace BinaryNinja
CoreArchitecture(BNArchitecture* arch);
virtual bool GetInstructionInfo(BinaryView* view, uint64_t addr, InstructionInfo& result) override;
};
+
+ class Function;
+
+ class BasicBlock: public RefCountObject
+ {
+ BNBasicBlock* m_block;
+
+ public:
+ BasicBlock(BNBasicBlock* block);
+ ~BasicBlock();
+
+ Ref<Function> GetFunction() const;
+ Ref<Architecture> GetArchitecture() const;
+
+ uint64_t GetStart() const;
+ uint64_t GetEnd() const;
+ uint64_t GetLength() const;
+
+ std::vector<uint8_t> GetInstructionSizes() const;
+ std::vector<BNBasicBlockEdge> GetOutgoingEdges() const;
+ };
+
+ class Function: public RefCountObject
+ {
+ BNFunction* m_func;
+
+ public:
+ Function(BNFunction* func);
+ ~Function();
+
+ BNFunction* GetFunctionObject() const { return m_func; }
+
+ Ref<Architecture> GetArchitecture() const;
+ uint64_t GetStart() const;
+
+ std::vector<Ref<BasicBlock>> GetBasicBlocks() const;
+ };
}