diff options
| author | Josh Ferrell <josh@vector35.com> | 2020-02-07 20:06:11 -0500 |
|---|---|---|
| committer | Josh Ferrell <josh@vector35.com> | 2020-03-31 13:29:35 -0400 |
| commit | 95b145165e424d69554d03d4ebcf4cc13d43ec88 (patch) | |
| tree | 18e40ebfbb940986d8bbc990281f317fc88f0091 /binaryninjacore.h | |
| parent | fa1de9cc465473fb00f0f47f91aba0a1792a60ee (diff) | |
Undobuffer merging and mergetool
Diffstat (limited to 'binaryninjacore.h')
| -rw-r--r-- | binaryninjacore.h | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h index 2a6f782b..bb872f8d 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -142,6 +142,7 @@ extern "C" struct BNTagType; struct BNTag; struct BNTagReference; + struct BNUser; struct BNNamedTypeReference; struct BNEnumeration; struct BNEnumerationBuilder; @@ -1438,12 +1439,33 @@ extern "C" struct BNUndoAction { - BNActionType type; - void* context; - void (*freeObject)(void* ctxt); - void (*undo)(void* ctxt, BNBinaryView* data); - void (*redo)(void* ctxt, BNBinaryView* data); - char* (*serialize)(void* ctxt); + BNActionType actionType; + char* summaryText; + BNInstructionTextToken* summaryTokens; + size_t summaryTokenCount; + }; + + struct BNUndoEntry + { + BNUser* user; + char* hash; + BNUndoAction* actions; + uint64_t actionCount; + uint64_t timestamp; + }; + + enum BNMergeStatus + { + NOT_APPLICABLE = 0, + OK = 1, + CONFLICT = 2 + }; + + struct BNMergeResult + { + BNMergeStatus status; + BNUndoAction action; + const char* hash; }; struct BNCallingConventionWithConfidence @@ -2221,21 +2243,32 @@ __attribute__ ((format (printf, 1, 2))) BINARYNINJACOREAPI bool BNRebase(BNBinaryView* data, uint64_t address); BINARYNINJACOREAPI bool BNRebaseWithProgress(BNBinaryView* data, uint64_t address, void* ctxt, void (*progress)(void* ctxt, size_t progress, size_t total)); + BINARYNINJACOREAPI BNMergeResult BNMergeUserAnalysis(BNFileMetadata* file, const char* name, void* ctxt, void (*progress)(void* ctxt, size_t progress, size_t total), + char** excludedHashes, size_t excludedHashesCount); + BINARYNINJACOREAPI char* BNGetOriginalFilename(BNFileMetadata* file); BINARYNINJACOREAPI void BNSetOriginalFilename(BNFileMetadata* file, const char* name); BINARYNINJACOREAPI char* BNGetFilename(BNFileMetadata* file); BINARYNINJACOREAPI void BNSetFilename(BNFileMetadata* file, const char* name); - BINARYNINJACOREAPI void BNRegisterUndoActionType(const char* name, void* typeContext, - bool (*deserialize)(void* ctxt, const char* data, BNUndoAction* result)); BINARYNINJACOREAPI void BNBeginUndoActions(BNFileMetadata* file); - BINARYNINJACOREAPI void BNAddUndoAction(BNBinaryView* view, const char* type, BNUndoAction* action); BINARYNINJACOREAPI void BNCommitUndoActions(BNFileMetadata* file); BINARYNINJACOREAPI bool BNUndo(BNFileMetadata* file); BINARYNINJACOREAPI bool BNRedo(BNFileMetadata* file); + BINARYNINJACOREAPI BNUndoEntry* BNGetUndoEntries(BNFileMetadata* file, size_t* count); + BINARYNINJACOREAPI void BNFreeUndoEntries(BNUndoEntry* entries, size_t count); + + BINARYNINJACOREAPI BNUser* BNNewUserReference(BNUser* user); + BINARYNINJACOREAPI void BNFreeUser(BNUser* user); + BINARYNINJACOREAPI BNUser** BNGetUsers(BNFileMetadata* file, size_t* count); + BINARYNINJACOREAPI void BNFreeUserList(BNUser** users, size_t count); + BINARYNINJACOREAPI char* BNGetUserName(BNUser* user); + BINARYNINJACOREAPI char* BNGetUserEmail(BNUser* user); + BINARYNINJACOREAPI char* BNGetUserId(BNUser* user); + BINARYNINJACOREAPI char* BNGetCurrentView(BNFileMetadata* file); BINARYNINJACOREAPI uint64_t BNGetCurrentOffset(BNFileMetadata* file); BINARYNINJACOREAPI bool BNNavigate(BNFileMetadata* file, const char* view, uint64_t offset); |
