summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-03-07 18:10:55 -0500
committerRusty Wagner <rusty@vector35.com>2018-03-07 18:11:24 -0500
commit1c7349fcf125994f2e577361626fe1fb02eac029 (patch)
tree9855e97a3572c41af9f07f27e6b12eb1f117bf5d /binaryninjacore.h
parent352949f41ea0b66c833f272d2a2a1e5a77a9507c (diff)
Add APIs for skipping analysis of functions that are too large, and overriding this behavior
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 5329a1d9..a1b78b1c 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -989,6 +989,7 @@ extern "C"
void (*functionAdded)(void* ctxt, BNBinaryView* view, BNFunction* func);
void (*functionRemoved)(void* ctxt, BNBinaryView* view, BNFunction* func);
void (*functionUpdated)(void* ctxt, BNBinaryView* view, BNFunction* func);
+ void (*functionUpdateRequested)(void* ctxt, BNBinaryView* view, BNFunction* func);
void (*dataVariableAdded)(void* ctxt, BNBinaryView* view, BNDataVariable* var);
void (*dataVariableRemoved)(void* ctxt, BNBinaryView* view, BNDataVariable* var);
void (*dataVariableUpdated)(void* ctxt, BNBinaryView* view, BNDataVariable* var);
@@ -1739,6 +1740,13 @@ extern "C"
uint8_t confidence;
};
+ enum BNFunctionAnalysisSkipOverride
+ {
+ DefaultFunctionAnalysisSkip,
+ NeverSkipFunctionAnalysis,
+ AlwaysSkipFunctionAnalysis
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
BINARYNINJACOREAPI char** BNAllocStringList(const char** contents, size_t size);
@@ -2421,6 +2429,14 @@ extern "C"
BINARYNINJACOREAPI void BNSetIntegerConstantDisplayType(BNFunction* func, BNArchitecture* arch,
uint64_t instrAddr, uint64_t value, size_t operand, BNIntegerDisplayType type);
+ BINARYNINJACOREAPI bool BNIsFunctionTooLarge(BNFunction* func);
+ BINARYNINJACOREAPI bool BNIsFunctionAnalysisSkipped(BNFunction* func);
+ BINARYNINJACOREAPI BNFunctionAnalysisSkipOverride BNGetFunctionAnalysisSkipOverride(BNFunction* func);
+ BINARYNINJACOREAPI void BNSetFunctionAnalysisSkipOverride(BNFunction* func, BNFunctionAnalysisSkipOverride skip);
+
+ BINARYNINJACOREAPI uint64_t BNGetMaxFunctionSizeForAnalysis(BNBinaryView* view);
+ BINARYNINJACOREAPI void BNSetMaxFunctionSizeForAnalysis(BNBinaryView* view, uint64_t size);
+
BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNAddAnalysisCompletionEvent(BNBinaryView* view, void* ctxt,
void (*callback)(void* ctxt));
BINARYNINJACOREAPI BNAnalysisCompletionEvent* BNNewAnalysisCompletionEventReference(BNAnalysisCompletionEvent* event);
@@ -2536,6 +2552,7 @@ extern "C"
BINARYNINJACOREAPI BNFunctionGraphBlock** BNGetFunctionGraphBlocksInRegion(
BNFunctionGraph* graph, int left, int top, int right, int bottom, size_t* count);
BINARYNINJACOREAPI void BNFreeFunctionGraphBlockList(BNFunctionGraphBlock** blocks, size_t count);
+ BINARYNINJACOREAPI bool BNFunctionGraphHasBlocks(BNFunctionGraph* graph);
BINARYNINJACOREAPI int BNGetFunctionGraphWidth(BNFunctionGraph* graph);
BINARYNINJACOREAPI int BNGetFunctionGraphHeight(BNFunctionGraph* graph);