diff options
| author | Josh Ferrell <josh@vector35.com> | 2024-08-06 16:22:55 -0400 |
|---|---|---|
| committer | Josh Ferrell <josh@vector35.com> | 2024-08-07 16:26:05 -0400 |
| commit | f5097c5f3b2fa4d10056b559a95568b1fe4116d3 (patch) | |
| tree | 73a4b0613dfbca084ec6226c7c4ad99d5afd03db /binaryninjacore.h | |
| parent | 264a5cf77a2562ac07d67a9e71babb6a5a14e31c (diff) | |
Expose Collaboration::ConflictSplitter in API
Diffstat (limited to 'binaryninjacore.h')
| -rw-r--r-- | binaryninjacore.h | 20 |
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 } |
