diff options
| author | Mason Reed <mason@vector35.com> | 2026-02-22 22:42:35 -0800 |
|---|---|---|
| committer | Mason Reed <35282038+emesare@users.noreply.github.com> | 2026-02-23 00:09:44 -0800 |
| commit | d0eec62d6df0edbbb76dfeac58879797e90a8594 (patch) | |
| tree | 03cf8d04eb7d33ac0785f2eede92ecbd552a48b0 /binaryninjacore.h | |
| parent | f3e0bf4ab35d50b11b2dbde41a699ab7497208d1 (diff) | |
Add global plugin command type
Register plugins which are available outside the context of a binary view
Diffstat (limited to 'binaryninjacore.h')
| -rw-r--r-- | binaryninjacore.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h index 94456c2f..439f87c0 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -2784,7 +2784,8 @@ extern "C" MediumLevelILInstructionPluginCommand, HighLevelILFunctionPluginCommand, HighLevelILInstructionPluginCommand, - ProjectPluginCommand + ProjectPluginCommand, + GlobalPluginCommand }; typedef struct BNPluginCommand @@ -2794,6 +2795,7 @@ extern "C" BNPluginCommandType type; void* context; + void (*globalCommand)(void* ctxt); void (*defaultCommand)(void* ctxt, BNBinaryView* view); void (*addressCommand)(void* ctxt, BNBinaryView* view, uint64_t addr); void (*rangeCommand)(void* ctxt, BNBinaryView* view, uint64_t addr, uint64_t len); @@ -2808,6 +2810,7 @@ extern "C" void* ctxt, BNBinaryView* view, BNHighLevelILFunction* func, size_t instr); void (*projectCommand)(void* ctxt, BNProject* view); + bool (*globalIsValid)(void* ctxt); bool (*defaultIsValid)(void* ctxt, BNBinaryView* view); bool (*addressIsValid)(void* ctxt, BNBinaryView* view, uint64_t addr); bool (*rangeIsValid)(void* ctxt, BNBinaryView* view, uint64_t addr, uint64_t len); @@ -7426,6 +7429,8 @@ extern "C" BINARYNINJACOREAPI void BNInstallPendingUpdate(char** errors); // Plugin commands + BINARYNINJACOREAPI void BNRegisterPluginCommandGlobal(const char* name, const char* description, + void (*action)(void* ctxt), bool (*isValid)(void* ctxt), void* context); BINARYNINJACOREAPI void BNRegisterPluginCommand(const char* name, const char* description, void (*action)(void* ctxt, BNBinaryView* view), bool (*isValid)(void* ctxt, BNBinaryView* view), void* context); BINARYNINJACOREAPI void BNRegisterPluginCommandForAddress(const char* name, const char* description, @@ -7460,6 +7465,7 @@ extern "C" void (*action)(void* ctxt, BNProject* project), bool (*isValid)(void* ctxt, BNProject* project), void* context); BINARYNINJACOREAPI BNPluginCommand* BNGetAllPluginCommands(size_t* count); + BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsGlobal(size_t* count); BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommands(BNBinaryView* view, size_t* count); BINARYNINJACOREAPI BNPluginCommand* BNGetValidPluginCommandsForAddress( BNBinaryView* view, uint64_t addr, size_t* count); |
