summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2018-06-26 23:30:22 -0400
committerBrian Potchik <brian@vector35.com>2018-06-26 23:30:22 -0400
commit08409f8e134b3d93fc56e5e29670f8a8f4def890 (patch)
tree9169b11fa4526f28368e9c141dc9acb60c461d5f /binaryninjacore.h
parent02cedcd92ab8ac054e82ed1c72d9e0107aecf2ae (diff)
Add new API to query active analysis info and set analysis limits.
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index f77a9475..fda26d47 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1480,12 +1480,37 @@ extern "C"
ExtendedAnalyzeState
};
+ struct BNActiveAnalysisInfo
+ {
+ BNFunction* func;
+ uint64_t analysisTime;
+ size_t updateCount;
+ size_t submitCount;
+ };
+
+ struct BNAnalysisInfo
+ {
+ BNAnalysisState state;
+ uint64_t analysisTime;
+ BNActiveAnalysisInfo* activeInfo;
+ size_t count;
+ };
+
struct BNAnalysisProgress
{
BNAnalysisState state;
size_t count, total;
};
+ struct BNAnalysisParameters
+ {
+ uint64_t maxAnalysisTime;
+ uint64_t maxFunctionSize;
+ uint64_t maxFunctionAnalysisTime;
+ size_t maxFunctionUpdateCount;
+ size_t maxFunctionSubmitCount;
+ };
+
struct BNDownloadInstanceOutputCallbacks
{
uint64_t (*writeCallback)(uint8_t* data, uint64_t len, void* ctxt);
@@ -1790,6 +1815,14 @@ extern "C"
AlwaysSkipFunctionAnalysis
};
+ enum BNAnalysisSkipReason
+ {
+ NoSkipReason,
+ AlwaysSkipReason,
+ ExceedFunctionSizeSkipReason,
+ ExceedFunctionAnalysisTimeSkipReason
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
BINARYNINJACOREAPI char** BNAllocStringList(const char** contents, size_t size);
@@ -2479,9 +2512,12 @@ extern "C"
BINARYNINJACOREAPI bool BNIsFunctionTooLarge(BNFunction* func);
BINARYNINJACOREAPI bool BNIsFunctionAnalysisSkipped(BNFunction* func);
+ BINARYNINJACOREAPI BNAnalysisSkipReason BNGetAnalysisSkipReason(BNFunction* func);
BINARYNINJACOREAPI BNFunctionAnalysisSkipOverride BNGetFunctionAnalysisSkipOverride(BNFunction* func);
BINARYNINJACOREAPI void BNSetFunctionAnalysisSkipOverride(BNFunction* func, BNFunctionAnalysisSkipOverride skip);
+ BINARYNINJACOREAPI BNAnalysisParameters BNGetParametersForAnalysis(BNBinaryView* view);
+ BINARYNINJACOREAPI void BNSetParametersForAnalysis(BNBinaryView* view, BNAnalysisParameters params);
BINARYNINJACOREAPI uint64_t BNGetMaxFunctionSizeForAnalysis(BNBinaryView* view);
BINARYNINJACOREAPI void BNSetMaxFunctionSizeForAnalysis(BNBinaryView* view, uint64_t size);
@@ -2491,6 +2527,8 @@ extern "C"
BINARYNINJACOREAPI void BNFreeAnalysisCompletionEvent(BNAnalysisCompletionEvent* event);
BINARYNINJACOREAPI void BNCancelAnalysisCompletionEvent(BNAnalysisCompletionEvent* event);
+ BINARYNINJACOREAPI BNAnalysisInfo* BNGetAnalysisInfo(BNBinaryView* view);
+ BINARYNINJACOREAPI void BNFreeAnalysisInfo(BNAnalysisInfo* info);
BINARYNINJACOREAPI BNAnalysisProgress BNGetAnalysisProgress(BNBinaryView* view);
BINARYNINJACOREAPI BNBackgroundTask* BNGetBackgroundAnalysisTask(BNBinaryView* view);