summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-07-02 18:53:31 -0400
committerRusty Wagner <rusty.wagner@gmail.com>2025-07-03 12:44:56 -0400
commit2cd19b867772f15d87eaee9560b94a9fd9ba13e4 (patch)
tree00fc16b815a0c1176e96b388e9c11cb7621391a8 /binaryninjacore.h
parentb4918a512bef271d7f6e27980ea875208c7f2954 (diff)
Add API to get all type field references at the same time to avoid duplicating work
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index b65dac73..215cd6b2 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 118
+#define BN_CURRENT_CORE_ABI_VERSION 119
// 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
@@ -3728,6 +3728,18 @@ extern "C"
bool higherToLowerDirect;
} BNExprMapInfo;
+ typedef struct BNAllTypeFieldReferences
+ {
+ BNTypeFieldReference* codeRefs;
+ size_t codeRefCount;
+ uint64_t* dataRefsTo;
+ size_t dataRefToCount;
+ uint64_t* dataRefsFrom;
+ size_t dataRefFromCount;
+ BNTypeReferenceSource* typeRefs;
+ size_t typeRefCount;
+ } BNAllTypeFieldReferences;
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI char* BNAllocStringWithLength(const char* contents, size_t len);
BINARYNINJACOREAPI void BNFreeString(char* str);
@@ -5043,6 +5055,10 @@ extern "C"
BINARYNINJACOREAPI BNTypeReferenceSource* BNGetTypeReferencesForTypeField(
BNBinaryView* view, BNQualifiedName* type, uint64_t offset, size_t* count);
+ BINARYNINJACOREAPI BNAllTypeFieldReferences BNGetAllReferencesForTypeField(
+ BNBinaryView* view, BNQualifiedName* type, uint64_t offset);
+ BINARYNINJACOREAPI void BNFreeAllTypeFieldReferences(BNAllTypeFieldReferences* refs);
+
BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFrom(
BNBinaryView* view, BNReferenceSource* addr, size_t* count);
BINARYNINJACOREAPI BNTypeReferenceSource* BNGetCodeReferencesForTypeFromInRange(