summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h110
1 files changed, 59 insertions, 51 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index c3379be0..0ba01542 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -192,7 +192,6 @@ extern "C"
} PluginLoadStatus;
typedef bool (*BNCorePluginInitFunction)(void);
- typedef bool (*BNScriptPluginInitFunction)(const char*, const char*);
typedef void (*BNCorePluginDependencyFunction)(void);
typedef uint32_t (*BNCorePluginABIVersionFunction)(void);
@@ -257,7 +256,8 @@ extern "C"
typedef struct BNMainThreadAction BNMainThreadAction;
typedef struct BNBackgroundTask BNBackgroundTask;
typedef struct BNRepository BNRepository;
- typedef struct BNPlugin BNPlugin;
+ typedef struct BNRepoPlugin BNRepoPlugin;
+ typedef struct BNRepositoryManager BNRepositoryManager;
typedef struct BNComponent BNComponent;
typedef struct BNSettings BNSettings;
typedef struct BNMetadata BNMetadata;
@@ -3944,8 +3944,11 @@ extern "C"
// Plugin initialization
BINARYNINJACOREAPI bool BNInitPlugins(bool allowUserPlugins);
+ BINARYNINJACOREAPI bool BNInitCorePlugins(void); // Deprecated, use BNInitPlugins
BINARYNINJACOREAPI void BNDisablePlugins(void);
BINARYNINJACOREAPI bool BNIsPluginsEnabled(void);
+ BINARYNINJACOREAPI void BNInitUserPlugins(void); // Deprecated, use BNInitPlugins
+ BINARYNINJACOREAPI void BNInitRepoPlugins(void);
BINARYNINJACOREAPI char* BNGetInstallDirectory(void);
BINARYNINJACOREAPI char* BNGetBundledPluginDirectory(void);
@@ -7681,70 +7684,75 @@ extern "C"
BNType** outType, BNQualifiedName* outVarName, BNBinaryView* view, bool simplify);
// Plugin repository APIs
- BINARYNINJACOREAPI char** BNPluginGetApis(BNPlugin* p, size_t* count);
- BINARYNINJACOREAPI const char* BNPluginGetAuthor(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetDescription(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetLicenseText(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetLongdescription(BNPlugin* p);
- BINARYNINJACOREAPI BNVersionInfo BNPluginGetMinimumVersionInfo(BNPlugin* p);
- BINARYNINJACOREAPI BNVersionInfo BNPluginGetMaximumVersionInfo(BNPlugin* p);
+ BINARYNINJACOREAPI char** BNPluginGetApis(BNRepoPlugin* p, size_t* count);
+ BINARYNINJACOREAPI const char* BNPluginGetAuthor(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetDescription(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetLicenseText(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetLongdescription(BNRepoPlugin* p);
+ BINARYNINJACOREAPI BNVersionInfo BNPluginGetMinimumVersionInfo(BNRepoPlugin* p);
+ BINARYNINJACOREAPI BNVersionInfo BNPluginGetMaximumVersionInfo(BNRepoPlugin* p);
BINARYNINJACOREAPI BNVersionInfo BNParseVersionString(const char* v);
BINARYNINJACOREAPI bool BNVersionLessThan(const BNVersionInfo smaller, const BNVersionInfo larger);
- BINARYNINJACOREAPI const char* BNPluginGetName(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetProjectUrl(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetPackageUrl(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetAuthorUrl(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetVersion(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetCommit(BNPlugin* p);
- BINARYNINJACOREAPI const bool BNPluginGetViewOnly(BNPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetName(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetProjectUrl(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetPackageUrl(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetAuthorUrl(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetVersion(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetCommit(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const bool BNPluginGetViewOnly(BNRepoPlugin* p);
BINARYNINJACOREAPI void BNFreePluginTypes(BNPluginType* r);
- BINARYNINJACOREAPI BNPlugin* BNNewPluginReference(BNPlugin* r);
- BINARYNINJACOREAPI void BNFreePlugin(BNPlugin* plugin);
- BINARYNINJACOREAPI const char* BNPluginGetPath(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetSubdir(BNPlugin* p);
- BINARYNINJACOREAPI const char* BNPluginGetDependencies(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsInstalled(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsEnabled(BNPlugin* p);
- BINARYNINJACOREAPI BNPluginStatus BNPluginGetPluginStatus(BNPlugin* p);
- BINARYNINJACOREAPI BNPluginType* BNPluginGetPluginTypes(BNPlugin* p, size_t* count);
- BINARYNINJACOREAPI bool BNPluginEnable(BNPlugin* p, bool force);
- BINARYNINJACOREAPI bool BNPluginDisable(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginInstall(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginInstallDependencies(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginUninstall(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginUpdate(BNPlugin* p);
- BINARYNINJACOREAPI char** BNPluginGetPlatforms(BNPlugin* p, size_t* count);
+ BINARYNINJACOREAPI BNRepoPlugin* BNNewPluginReference(BNRepoPlugin* r);
+ BINARYNINJACOREAPI void BNFreePlugin(BNRepoPlugin* plugin);
+ BINARYNINJACOREAPI const char* BNPluginGetPath(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetSubdir(BNRepoPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetDependencies(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsInstalled(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsEnabled(BNRepoPlugin* p);
+ BINARYNINJACOREAPI BNPluginStatus BNPluginGetPluginStatus(BNRepoPlugin* p);
+ BINARYNINJACOREAPI BNPluginType* BNPluginGetPluginTypes(BNRepoPlugin* p, size_t* count);
+ BINARYNINJACOREAPI bool BNPluginEnable(BNRepoPlugin* p, bool force);
+ BINARYNINJACOREAPI bool BNPluginDisable(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginInstall(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginInstallDependencies(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginUninstall(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginUpdate(BNRepoPlugin* p);
+ BINARYNINJACOREAPI char** BNPluginGetPlatforms(BNRepoPlugin* p, size_t* count);
BINARYNINJACOREAPI void BNFreePluginPlatforms(char** platforms, size_t count);
- BINARYNINJACOREAPI const char* BNPluginGetRepository(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsBeingDeleted(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsBeingUpdated(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsRunning(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsUpdatePending(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsDisablePending(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsDeletePending(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginIsUpdateAvailable(BNPlugin* p);
- BINARYNINJACOREAPI bool BNPluginAreDependenciesBeingInstalled(BNPlugin* p);
+ BINARYNINJACOREAPI const char* BNPluginGetRepository(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsBeingDeleted(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsBeingUpdated(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsRunning(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsUpdatePending(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsDisablePending(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsDeletePending(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginIsUpdateAvailable(BNRepoPlugin* p);
+ BINARYNINJACOREAPI bool BNPluginAreDependenciesBeingInstalled(BNRepoPlugin* p);
- BINARYNINJACOREAPI char* BNPluginGetProjectData(BNPlugin* p);
- BINARYNINJACOREAPI uint64_t BNPluginGetLastUpdate(BNPlugin* p);
+ BINARYNINJACOREAPI char* BNPluginGetProjectData(BNRepoPlugin* p);
+ BINARYNINJACOREAPI uint64_t BNPluginGetLastUpdate(BNRepoPlugin* p);
BINARYNINJACOREAPI BNRepository* BNNewRepositoryReference(BNRepository* r);
BINARYNINJACOREAPI void BNFreeRepository(BNRepository* r);
BINARYNINJACOREAPI char* BNRepositoryGetUrl(BNRepository* r);
BINARYNINJACOREAPI char* BNRepositoryGetRepoPath(BNRepository* r);
- BINARYNINJACOREAPI BNPlugin** BNRepositoryGetPlugins(BNRepository* r, size_t* count);
- BINARYNINJACOREAPI void BNFreeRepositoryPluginList(BNPlugin** r);
+ BINARYNINJACOREAPI BNRepoPlugin** BNRepositoryGetPlugins(BNRepository* r, size_t* count);
+ BINARYNINJACOREAPI void BNFreeRepositoryPluginList(BNRepoPlugin** r);
BINARYNINJACOREAPI void BNRepositoryFreePluginDirectoryList(char** list, size_t count);
- BINARYNINJACOREAPI BNPlugin* BNRepositoryGetPluginByPath(BNRepository* r, const char* pluginPath);
+ BINARYNINJACOREAPI BNRepoPlugin* BNRepositoryGetPluginByPath(BNRepository* r, const char* pluginPath);
BINARYNINJACOREAPI const char* BNRepositoryGetPluginsPath(BNRepository* r);
- BINARYNINJACOREAPI bool BNRepositoryManagerCheckForUpdates();
- BINARYNINJACOREAPI BNRepository** BNRepositoryManagerGetRepositories(size_t* count);
+ BINARYNINJACOREAPI BNRepositoryManager* BNCreateRepositoryManager(const char* enabledPluginsPath);
+ BINARYNINJACOREAPI BNRepositoryManager* BNNewRepositoryManagerReference(BNRepositoryManager* r);
+ BINARYNINJACOREAPI void BNFreeRepositoryManager(BNRepositoryManager* r);
+ BINARYNINJACOREAPI bool BNRepositoryManagerCheckForUpdates(BNRepositoryManager* r);
+ BINARYNINJACOREAPI BNRepository** BNRepositoryManagerGetRepositories(BNRepositoryManager* r, size_t* count);
BINARYNINJACOREAPI void BNFreeRepositoryManagerRepositoriesList(BNRepository** r);
- BINARYNINJACOREAPI bool BNRepositoryManagerAddRepository(const char* url, const char* repoPath);
- BINARYNINJACOREAPI BNRepository* BNRepositoryGetRepositoryByPath(const char* repoPath);
+ BINARYNINJACOREAPI bool BNRepositoryManagerAddRepository(
+ BNRepositoryManager* r, const char* url, const char* repoPath);
+ BINARYNINJACOREAPI BNRepository* BNRepositoryGetRepositoryByPath(BNRepositoryManager* r, const char* repoPath);
+ BINARYNINJACOREAPI BNRepositoryManager* BNGetRepositoryManager(void);
- BINARYNINJACOREAPI BNRepository* BNRepositoryManagerGetDefaultRepository();
+ BINARYNINJACOREAPI BNRepository* BNRepositoryManagerGetDefaultRepository(BNRepositoryManager* r);
// Components