summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRyan Snyder <ryan@vector35.com>2021-05-28 16:35:34 -0400
committerRyan Snyder <ryan@vector35.com>2021-05-28 18:01:44 -0400
commit0732c4d3e9b24382271139c6f796d1639efb1c5d (patch)
tree70bc863d4e1321fd2d1a5a8a1e819a00b1c6b5b7 /binaryninjacore.h
parent4c8f4c3ddb307bfd3168cf5bd573e1dffda9629b (diff)
Improve calling convention support for variadic argument resolution
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 71cc538d..35f653a2 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -28,14 +28,14 @@
// 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 9
+#define BN_CURRENT_CORE_ABI_VERSION 10
// 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
// will require rebuilding. The minimum version is increased when there are
// incompatible changes that break binary compatibility, such as changes to
// existing types or functions.
-#define BN_MINIMUM_CORE_ABI_VERSION 7
+#define BN_MINIMUM_CORE_ABI_VERSION 10
#ifdef __GNUC__
# ifdef BINARYNINJACORE_LIBRARY
@@ -2057,6 +2057,8 @@ extern "C"
BNFunction* func, BNVariable* result);
void (*getParameterVariableForIncomingVariable)(void* ctxt, const BNVariable* var,
BNFunction* func, BNVariable* result);
+
+ bool (*areArgumentRegistersUsedForVarArgs)(void* ctxt);
};
struct BNVariableNameAndType
@@ -4661,6 +4663,7 @@ __attribute__ ((format (printf, 1, 2)))
BINARYNINJACOREAPI uint32_t* BNGetIntegerArgumentRegisters(BNCallingConvention* cc, size_t* count);
BINARYNINJACOREAPI uint32_t* BNGetFloatArgumentRegisters(BNCallingConvention* cc, size_t* count);
BINARYNINJACOREAPI bool BNAreArgumentRegistersSharedIndex(BNCallingConvention* cc);
+ BINARYNINJACOREAPI bool BNAreArgumentRegistersUsedForVarArgs(BNCallingConvention* cc);
BINARYNINJACOREAPI bool BNIsStackReservedForArgumentRegisters(BNCallingConvention* cc);
BINARYNINJACOREAPI bool BNIsStackAdjustedOnReturn(BNCallingConvention* cc);
BINARYNINJACOREAPI bool BNIsEligibleForHeuristics(BNCallingConvention* cc);