summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorJosh Ferrell <josh@vector35.com>2024-08-06 16:22:55 -0400
committerJosh Ferrell <josh@vector35.com>2024-08-07 16:26:05 -0400
commitf5097c5f3b2fa4d10056b559a95568b1fe4116d3 (patch)
tree73a4b0613dfbca084ec6226c7c4ad99d5afd03db /binaryninjacore.h
parent264a5cf77a2562ac07d67a9e71babb6a5a14e31c (diff)
Expose Collaboration::ConflictSplitter in API
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 5f631827..0d321838 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -291,6 +291,7 @@ extern "C"
typedef struct BNCollaborationUndoEntry BNCollaborationUndoEntry;
typedef struct BNCollaborationUser BNCollaborationUser;
typedef struct BNAnalysisMergeConflict BNAnalysisMergeConflict;
+ typedef struct BNAnalysisMergeConflictSplitter BNAnalysisMergeConflictSplitter;
typedef struct BNTypeArchiveMergeConflict BNTypeArchiveMergeConflict;
typedef struct BNCollaborationLazyT BNCollaborationLazyT;
typedef struct BNUndoAction BNUndoAction;
@@ -3301,6 +3302,18 @@ extern "C"
BinaryConflictDataType
} BNMergeConflictDataType;
+ typedef struct BNAnalysisMergeConflictSplitterCallbacks
+ {
+ void* context;
+ char* (*getName)(void* context);
+ void (*reset)(void* context);
+ void (*finished)(void* context);
+ bool (*canSplit)(void* context, const char* key, const BNAnalysisMergeConflict* conflict);
+ bool (*split)(void* context, const char* originalKey, const BNAnalysisMergeConflict* originalConflict, BNKeyValueStore* result, char*** newKeys, BNAnalysisMergeConflict*** newConflicts, size_t* newCount);
+ void (*freeName)(void* context, char* name);
+ void (*freeKeyList)(void* context, char** keyList, size_t count);
+ void (*freeConflictList)(void* context, BNAnalysisMergeConflict** conflictList, size_t count);
+ } BNAnalysisMergeConflictSplitterCallbacks;
typedef bool(*BNProgressFunction)(void*, size_t, size_t);
typedef bool(*BNCollaborationAnalysisConflictHandler)(void*, const char** keys, BNAnalysisMergeConflict** conflicts, size_t conflictCount);
@@ -7580,6 +7593,13 @@ extern "C"
BINARYNINJACOREAPI char* BNCollaborationChangesetGetName(BNCollaborationChangeset* changeset);
BINARYNINJACOREAPI bool BNCollaborationChangesetSetName(BNCollaborationChangeset* changeset, const char* name);
+ // AnalysisMergeConflictSplitter
+ BINARYNINJACOREAPI BNAnalysisMergeConflictSplitter* BNRegisterAnalysisMergeConflictSplitter(BNAnalysisMergeConflictSplitterCallbacks* callbacks);
+ BINARYNINJACOREAPI BNAnalysisMergeConflictSplitter** BNGetAnalysisMergeConflictSplitterList(size_t* count);
+ BINARYNINJACOREAPI void BNFreeAnalysisMergeConflictSplitterList(BNAnalysisMergeConflictSplitter** splitters, size_t count);
+ BINARYNINJACOREAPI char* BNAnalysisMergeConflictSplitterGetName(BNAnalysisMergeConflictSplitter* splitter);
+ BINARYNINJACOREAPI bool BNAnalysisMergeConflictSplitterCanSplit(BNAnalysisMergeConflictSplitter* splitter, const char* key, BNAnalysisMergeConflict* conflict);
+ BINARYNINJACOREAPI bool BNAnalysisMergeConflictSplitterSplit(BNAnalysisMergeConflictSplitter* splitter, const char* originalKey, BNAnalysisMergeConflict* originalConflict, BNKeyValueStore* result, char*** newKeys, BNAnalysisMergeConflict*** newConflicts, size_t* newCount);
#ifdef __cplusplus
}