summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2016-07-06 22:58:22 -0400
committerRusty Wagner <rusty@vector35.com>2016-07-06 22:58:22 -0400
commit05b8dae707da62437abf262fe8d1dd2b74a5f98f (patch)
tree7a2ed3fff81d9e77da8c5b9c75c0e635e32a36c0 /binaryninjacore.h
parenta7eaa72caa4a5e3e7cd7ea7c32236c93b06d1442 (diff)
Add API to get disassembly text for a basic block outside of a graph
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h34
1 files changed, 26 insertions, 8 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 048255b1..805ff090 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -96,6 +96,7 @@ extern "C"
struct BNCallingConvention;
struct BNPlatform;
struct BNAnalysisCompletionEvent;
+ struct BNDisassemblySettings;
//! Console log levels
enum BNLogLevel
@@ -294,7 +295,7 @@ extern "C"
LiftedILFunctionGraph = 2
};
- enum BNFunctionGraphOption
+ enum BNDisassemblyOption
{
ShowAddress = 0,
@@ -572,7 +573,7 @@ extern "C"
size_t pointCount;
};
- struct BNFunctionGraphTextLine
+ struct BNDisassemblyTextLine
{
uint64_t addr;
BNInstructionTextToken* tokens;
@@ -1180,6 +1181,10 @@ extern "C"
BINARYNINJACOREAPI void BNFreeBasicBlockOutgoingEdgeList(BNBasicBlockEdge* edges);
BINARYNINJACOREAPI bool BNBasicBlockHasUndeterminedOutgoingEdges(BNBasicBlock* block);
+ BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetBasicBlockDisassemblyText(BNBasicBlock* block,
+ BNDisassemblySettings* settings, size_t* count);
+ BINARYNINJACOREAPI void BNFreeDisassemblyTextLines(BNDisassemblyTextLine* lines, size_t count);
+
BINARYNINJACOREAPI void BNMarkFunctionAsRecentlyUsed(BNFunction* func);
BINARYNINJACOREAPI void BNMarkBasicBlockAsRecentlyUsed(BNBasicBlock* block);
@@ -1226,6 +1231,21 @@ extern "C"
BINARYNINJACOREAPI BNAnalysisProgress BNGetAnalysisProgress(BNBinaryView* view);
+ // Disassembly settings
+ BINARYNINJACOREAPI BNDisassemblySettings* BNCreateDisassemblySettings(void);
+ BINARYNINJACOREAPI BNDisassemblySettings* BNNewDisassemblySettingsReference(BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI void BNFreeDisassemblySettings(BNDisassemblySettings* settings);
+
+ BINARYNINJACOREAPI bool BNIsDisassemblySettingsOptionSet(BNDisassemblySettings* settings,
+ BNDisassemblyOption option);
+ BINARYNINJACOREAPI void BNSetDisassemblySettingsOption(BNDisassemblySettings* settings,
+ BNDisassemblyOption option, bool state);
+
+ BINARYNINJACOREAPI size_t BNGetDisassemblyWidth(BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI void BNSetDisassemblyWidth(BNDisassemblySettings* settings, size_t width);
+ BINARYNINJACOREAPI size_t BNGetDisassemblyMaximumSymbolWidth(BNDisassemblySettings* settings);
+ BINARYNINJACOREAPI void BNSetDisassemblyMaximumSymbolWidth(BNDisassemblySettings* settings, size_t width);
+
// Function graph
BINARYNINJACOREAPI BNFunctionGraph* BNCreateFunctionGraph(BNFunction* func);
BINARYNINJACOREAPI BNFunctionGraph* BNNewFunctionGraphReference(BNFunctionGraph* graph);
@@ -1236,8 +1256,7 @@ extern "C"
BINARYNINJACOREAPI int BNGetVerticalFunctionGraphBlockMargin(BNFunctionGraph* graph);
BINARYNINJACOREAPI void BNSetFunctionGraphBlockMargins(BNFunctionGraph* graph, int horiz, int vert);
- BINARYNINJACOREAPI size_t BNGetFunctionGraphMaximumSymbolWidth(BNFunctionGraph* graph);
- BINARYNINJACOREAPI void BNSetFunctionGraphMaximumSymbolWidth(BNFunctionGraph* graph, size_t width);
+ BINARYNINJACOREAPI BNDisassemblySettings* BNGetFunctionGraphSettings(BNFunctionGraph* graph);
BINARYNINJACOREAPI void BNStartFunctionGraphLayout(BNFunctionGraph* graph, BNFunctionGraphType type);
BINARYNINJACOREAPI bool BNIsFunctionGraphLayoutComplete(BNFunctionGraph* graph);
@@ -1253,8 +1272,8 @@ extern "C"
BINARYNINJACOREAPI int BNGetFunctionGraphWidth(BNFunctionGraph* graph);
BINARYNINJACOREAPI int BNGetFunctionGraphHeight(BNFunctionGraph* graph);
- BINARYNINJACOREAPI bool BNIsFunctionGraphOptionSet(BNFunctionGraph* graph, BNFunctionGraphOption option);
- BINARYNINJACOREAPI void BNSetFunctionGraphOption(BNFunctionGraph* graph, BNFunctionGraphOption option, bool state);
+ BINARYNINJACOREAPI bool BNIsFunctionGraphOptionSet(BNFunctionGraph* graph, BNDisassemblyOption option);
+ BINARYNINJACOREAPI void BNSetFunctionGraphOption(BNFunctionGraph* graph, BNDisassemblyOption option, bool state);
BINARYNINJACOREAPI BNFunctionGraphBlock* BNNewFunctionGraphBlockReference(BNFunctionGraphBlock* block);
BINARYNINJACOREAPI void BNFreeFunctionGraphBlock(BNFunctionGraphBlock* block);
@@ -1267,8 +1286,7 @@ extern "C"
BINARYNINJACOREAPI int BNGetFunctionGraphBlockWidth(BNFunctionGraphBlock* block);
BINARYNINJACOREAPI int BNGetFunctionGraphBlockHeight(BNFunctionGraphBlock* block);
- BINARYNINJACOREAPI BNFunctionGraphTextLine* BNGetFunctionGraphBlockLines(BNFunctionGraphBlock* block, size_t* count);
- BINARYNINJACOREAPI void BNFreeFunctionGraphBlockLines(BNFunctionGraphTextLine* lines, size_t count);
+ BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetFunctionGraphBlockLines(BNFunctionGraphBlock* block, size_t* count);
BINARYNINJACOREAPI BNFunctionGraphEdge* BNGetFunctionGraphBlockOutgoingEdges(BNFunctionGraphBlock* block, size_t* count);
BINARYNINJACOREAPI void BNFreeFunctionGraphBlockOutgoingEdgeList(BNFunctionGraphEdge* edges, size_t count);