summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index c4ac0911..1210fcca 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -37,7 +37,7 @@
// Current ABI version for linking to the core. This is incremented any time
// there are changes to the API that affect linking, including new functions,
// new types, or modifications to existing functions or types.
-#define BN_CURRENT_CORE_ABI_VERSION 110
+#define BN_CURRENT_CORE_ABI_VERSION 111
// Minimum ABI version that is supported for loading of plugins. Plugins that
// are linked to an ABI version less than this will not be able to load and
@@ -1030,6 +1030,9 @@ extern "C"
// HLIL condition can be rewritten as an early return
HLILEarlyReturnPossible = 0x400,
+
+ // HLIL condition chain can be rewritten as a switch statement
+ HLILSwitchRecoveryPossible = 0x800,
} BNILInstructionAttribute;
typedef enum BNIntrinsicClass
@@ -3254,6 +3257,13 @@ extern "C"
FalseSideEarlyReturn
} BNEarlyReturn;
+ typedef enum BNSwitchRecovery
+ {
+ DefaultSwitchRecovery,
+ PreventSwitchRecovery,
+ AllowSwitchRecovery
+ } BNSwitchRecovery;
+
typedef struct BNDebugFunctionInfo
{
char* shortName;
@@ -5013,6 +5023,8 @@ extern "C"
BINARYNINJACOREAPI void BNSetConditionInverted(BNFunction* func, uint64_t addr, bool invert);
BINARYNINJACOREAPI BNEarlyReturn BNGetEarlyReturn(BNFunction* func, uint64_t addr);
BINARYNINJACOREAPI void BNSetEarlyReturn(BNFunction* func, uint64_t addr, BNEarlyReturn mode);
+ BINARYNINJACOREAPI BNSwitchRecovery BNGetSwitchRecovery(BNFunction* func, uint64_t addr);
+ BINARYNINJACOREAPI void BNSetSwitchRecovery(BNFunction* func, uint64_t addr, BNSwitchRecovery mode);
BINARYNINJACOREAPI BNMergedVariable* BNGetMergedVariables(BNFunction* func, size_t* count);
BINARYNINJACOREAPI void BNFreeMergedVariableList(BNMergedVariable* vars, size_t count);
BINARYNINJACOREAPI void BNMergeVariables(BNFunction* func, const BNVariable* target, const BNVariable* sources,