summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-07-11 20:32:22 -0400
committerRusty Wagner <rusty@vector35.com>2018-07-11 20:32:22 -0400
commitdfe5d28f0aaee75ccad8c733e23879676ed77c37 (patch)
treeb4b15cd48d5126e5e7a097b049fbf9aad2fca475 /binaryninjacore.h
parentbfa6fce83383e7be1458a917f8e6dbf71bdab28b (diff)
Add APIs for subclassing flow graphs
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index c057b378..a32d8364 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1772,6 +1772,14 @@ extern "C"
FlowGraphReportType
};
+ struct BNCustomFlowGraph
+ {
+ void* context;
+ void (*prepareForLayout)(void* ctxt);
+ void (*populateNodes)(void* ctxt);
+ void (*completeLayout)(void* ctxt);
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
BINARYNINJACOREAPI char** BNAllocStringList(const char** contents, size_t size);
@@ -2566,6 +2574,7 @@ extern "C"
BINARYNINJACOREAPI BNFlowGraph* BNCreateFlowGraph();
BINARYNINJACOREAPI BNFlowGraph* BNCreateFunctionGraph(BNFunction* func, BNFunctionGraphType type,
BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI BNFlowGraph* BNCreateCustomFlowGraph(BNCustomFlowGraph* callbacks);
BINARYNINJACOREAPI BNFlowGraph* BNNewFlowGraphReference(BNFlowGraph* graph);
BINARYNINJACOREAPI void BNFreeFlowGraph(BNFlowGraph* graph);
BINARYNINJACOREAPI BNFunction* BNGetFunctionForFlowGraph(BNFlowGraph* graph);
@@ -2618,6 +2627,8 @@ extern "C"
BINARYNINJACOREAPI BNHighlightColor BNGetFlowGraphNodeHighlight(BNFlowGraphNode* node);
BINARYNINJACOREAPI void BNSetFlowGraphNodeHighlight(BNFlowGraphNode* node, BNHighlightColor color);
+ BINARYNINJACOREAPI void BNFinishPrepareForLayout(BNFlowGraph* graph);
+
// Symbols
BINARYNINJACOREAPI BNSymbol* BNCreateSymbol(BNSymbolType type, const char* shortName, const char* fullName,
const char* rawName, uint64_t addr);