@@ -192,7 +192,6 @@ extern "C"
192192 } PluginLoadStatus;
193193
194194 typedef bool (*BNCorePluginInitFunction)(void );
195- typedef bool (*BNScriptPluginInitFunction)(const char *, const char *);
196195 typedef void (*BNCorePluginDependencyFunction)(void );
197196 typedef uint32_t (*BNCorePluginABIVersionFunction)(void );
198197
@@ -257,7 +256,8 @@ extern "C"
257256 typedef struct BNMainThreadAction BNMainThreadAction;
258257 typedef struct BNBackgroundTask BNBackgroundTask;
259258 typedef struct BNRepository BNRepository;
260- typedef struct BNPlugin BNPlugin;
259+ typedef struct BNRepoPlugin BNRepoPlugin;
260+ typedef struct BNRepositoryManager BNRepositoryManager;
261261 typedef struct BNComponent BNComponent;
262262 typedef struct BNSettings BNSettings;
263263 typedef struct BNMetadata BNMetadata;
@@ -3944,8 +3944,11 @@ extern "C"
39443944
39453945 // Plugin initialization
39463946 BINARYNINJACOREAPI bool BNInitPlugins (bool allowUserPlugins);
3947+ BINARYNINJACOREAPI bool BNInitCorePlugins (void ); // Deprecated, use BNInitPlugins
39473948 BINARYNINJACOREAPI void BNDisablePlugins (void );
39483949 BINARYNINJACOREAPI bool BNIsPluginsEnabled (void );
3950+ BINARYNINJACOREAPI void BNInitUserPlugins (void ); // Deprecated, use BNInitPlugins
3951+ BINARYNINJACOREAPI void BNInitRepoPlugins (void );
39493952
39503953 BINARYNINJACOREAPI char * BNGetInstallDirectory (void );
39513954 BINARYNINJACOREAPI char * BNGetBundledPluginDirectory (void );
@@ -7681,70 +7684,75 @@ extern "C"
76817684 BNType** outType, BNQualifiedName* outVarName, BNBinaryView* view, bool simplify);
76827685
76837686// Plugin repository APIs
7684- BINARYNINJACOREAPI char ** BNPluginGetApis (BNPlugin * p, size_t * count);
7685- BINARYNINJACOREAPI const char * BNPluginGetAuthor (BNPlugin * p);
7686- BINARYNINJACOREAPI const char * BNPluginGetDescription (BNPlugin * p);
7687- BINARYNINJACOREAPI const char * BNPluginGetLicenseText (BNPlugin * p);
7688- BINARYNINJACOREAPI const char * BNPluginGetLongdescription (BNPlugin * p);
7689- BINARYNINJACOREAPI BNVersionInfo BNPluginGetMinimumVersionInfo (BNPlugin * p);
7690- BINARYNINJACOREAPI BNVersionInfo BNPluginGetMaximumVersionInfo (BNPlugin * p);
7687+ BINARYNINJACOREAPI char ** BNPluginGetApis (BNRepoPlugin * p, size_t * count);
7688+ BINARYNINJACOREAPI const char * BNPluginGetAuthor (BNRepoPlugin * p);
7689+ BINARYNINJACOREAPI const char * BNPluginGetDescription (BNRepoPlugin * p);
7690+ BINARYNINJACOREAPI const char * BNPluginGetLicenseText (BNRepoPlugin * p);
7691+ BINARYNINJACOREAPI const char * BNPluginGetLongdescription (BNRepoPlugin * p);
7692+ BINARYNINJACOREAPI BNVersionInfo BNPluginGetMinimumVersionInfo (BNRepoPlugin * p);
7693+ BINARYNINJACOREAPI BNVersionInfo BNPluginGetMaximumVersionInfo (BNRepoPlugin * p);
76917694 BINARYNINJACOREAPI BNVersionInfo BNParseVersionString (const char * v);
76927695 BINARYNINJACOREAPI bool BNVersionLessThan (const BNVersionInfo smaller, const BNVersionInfo larger);
7693- BINARYNINJACOREAPI const char * BNPluginGetName (BNPlugin * p);
7694- BINARYNINJACOREAPI const char * BNPluginGetProjectUrl (BNPlugin * p);
7695- BINARYNINJACOREAPI const char * BNPluginGetPackageUrl (BNPlugin * p);
7696- BINARYNINJACOREAPI const char * BNPluginGetAuthorUrl (BNPlugin * p);
7697- BINARYNINJACOREAPI const char * BNPluginGetVersion (BNPlugin * p);
7698- BINARYNINJACOREAPI const char * BNPluginGetCommit (BNPlugin * p);
7699- BINARYNINJACOREAPI const bool BNPluginGetViewOnly (BNPlugin * p);
7696+ BINARYNINJACOREAPI const char * BNPluginGetName (BNRepoPlugin * p);
7697+ BINARYNINJACOREAPI const char * BNPluginGetProjectUrl (BNRepoPlugin * p);
7698+ BINARYNINJACOREAPI const char * BNPluginGetPackageUrl (BNRepoPlugin * p);
7699+ BINARYNINJACOREAPI const char * BNPluginGetAuthorUrl (BNRepoPlugin * p);
7700+ BINARYNINJACOREAPI const char * BNPluginGetVersion (BNRepoPlugin * p);
7701+ BINARYNINJACOREAPI const char * BNPluginGetCommit (BNRepoPlugin * p);
7702+ BINARYNINJACOREAPI const bool BNPluginGetViewOnly (BNRepoPlugin * p);
77007703 BINARYNINJACOREAPI void BNFreePluginTypes (BNPluginType* r);
7701- BINARYNINJACOREAPI BNPlugin * BNNewPluginReference (BNPlugin * r);
7702- BINARYNINJACOREAPI void BNFreePlugin (BNPlugin * plugin);
7703- BINARYNINJACOREAPI const char * BNPluginGetPath (BNPlugin * p);
7704- BINARYNINJACOREAPI const char * BNPluginGetSubdir (BNPlugin * p);
7705- BINARYNINJACOREAPI const char * BNPluginGetDependencies (BNPlugin * p);
7706- BINARYNINJACOREAPI bool BNPluginIsInstalled (BNPlugin * p);
7707- BINARYNINJACOREAPI bool BNPluginIsEnabled (BNPlugin * p);
7708- BINARYNINJACOREAPI BNPluginStatus BNPluginGetPluginStatus (BNPlugin * p);
7709- BINARYNINJACOREAPI BNPluginType* BNPluginGetPluginTypes (BNPlugin * p, size_t * count);
7710- BINARYNINJACOREAPI bool BNPluginEnable (BNPlugin * p, bool force);
7711- BINARYNINJACOREAPI bool BNPluginDisable (BNPlugin * p);
7712- BINARYNINJACOREAPI bool BNPluginInstall (BNPlugin * p);
7713- BINARYNINJACOREAPI bool BNPluginInstallDependencies (BNPlugin * p);
7714- BINARYNINJACOREAPI bool BNPluginUninstall (BNPlugin * p);
7715- BINARYNINJACOREAPI bool BNPluginUpdate (BNPlugin * p);
7716- BINARYNINJACOREAPI char ** BNPluginGetPlatforms (BNPlugin * p, size_t * count);
7704+ BINARYNINJACOREAPI BNRepoPlugin * BNNewPluginReference (BNRepoPlugin * r);
7705+ BINARYNINJACOREAPI void BNFreePlugin (BNRepoPlugin * plugin);
7706+ BINARYNINJACOREAPI const char * BNPluginGetPath (BNRepoPlugin * p);
7707+ BINARYNINJACOREAPI const char * BNPluginGetSubdir (BNRepoPlugin * p);
7708+ BINARYNINJACOREAPI const char * BNPluginGetDependencies (BNRepoPlugin * p);
7709+ BINARYNINJACOREAPI bool BNPluginIsInstalled (BNRepoPlugin * p);
7710+ BINARYNINJACOREAPI bool BNPluginIsEnabled (BNRepoPlugin * p);
7711+ BINARYNINJACOREAPI BNPluginStatus BNPluginGetPluginStatus (BNRepoPlugin * p);
7712+ BINARYNINJACOREAPI BNPluginType* BNPluginGetPluginTypes (BNRepoPlugin * p, size_t * count);
7713+ BINARYNINJACOREAPI bool BNPluginEnable (BNRepoPlugin * p, bool force);
7714+ BINARYNINJACOREAPI bool BNPluginDisable (BNRepoPlugin * p);
7715+ BINARYNINJACOREAPI bool BNPluginInstall (BNRepoPlugin * p);
7716+ BINARYNINJACOREAPI bool BNPluginInstallDependencies (BNRepoPlugin * p);
7717+ BINARYNINJACOREAPI bool BNPluginUninstall (BNRepoPlugin * p);
7718+ BINARYNINJACOREAPI bool BNPluginUpdate (BNRepoPlugin * p);
7719+ BINARYNINJACOREAPI char ** BNPluginGetPlatforms (BNRepoPlugin * p, size_t * count);
77177720 BINARYNINJACOREAPI void BNFreePluginPlatforms (char ** platforms, size_t count);
7718- BINARYNINJACOREAPI const char * BNPluginGetRepository (BNPlugin * p);
7719- BINARYNINJACOREAPI bool BNPluginIsBeingDeleted (BNPlugin * p);
7720- BINARYNINJACOREAPI bool BNPluginIsBeingUpdated (BNPlugin * p);
7721- BINARYNINJACOREAPI bool BNPluginIsRunning (BNPlugin * p);
7722- BINARYNINJACOREAPI bool BNPluginIsUpdatePending (BNPlugin * p);
7723- BINARYNINJACOREAPI bool BNPluginIsDisablePending (BNPlugin * p);
7724- BINARYNINJACOREAPI bool BNPluginIsDeletePending (BNPlugin * p);
7725- BINARYNINJACOREAPI bool BNPluginIsUpdateAvailable (BNPlugin * p);
7726- BINARYNINJACOREAPI bool BNPluginAreDependenciesBeingInstalled (BNPlugin * p);
7727-
7728- BINARYNINJACOREAPI char * BNPluginGetProjectData (BNPlugin * p);
7729- BINARYNINJACOREAPI uint64_t BNPluginGetLastUpdate (BNPlugin * p);
7721+ BINARYNINJACOREAPI const char * BNPluginGetRepository (BNRepoPlugin * p);
7722+ BINARYNINJACOREAPI bool BNPluginIsBeingDeleted (BNRepoPlugin * p);
7723+ BINARYNINJACOREAPI bool BNPluginIsBeingUpdated (BNRepoPlugin * p);
7724+ BINARYNINJACOREAPI bool BNPluginIsRunning (BNRepoPlugin * p);
7725+ BINARYNINJACOREAPI bool BNPluginIsUpdatePending (BNRepoPlugin * p);
7726+ BINARYNINJACOREAPI bool BNPluginIsDisablePending (BNRepoPlugin * p);
7727+ BINARYNINJACOREAPI bool BNPluginIsDeletePending (BNRepoPlugin * p);
7728+ BINARYNINJACOREAPI bool BNPluginIsUpdateAvailable (BNRepoPlugin * p);
7729+ BINARYNINJACOREAPI bool BNPluginAreDependenciesBeingInstalled (BNRepoPlugin * p);
7730+
7731+ BINARYNINJACOREAPI char * BNPluginGetProjectData (BNRepoPlugin * p);
7732+ BINARYNINJACOREAPI uint64_t BNPluginGetLastUpdate (BNRepoPlugin * p);
77307733
77317734 BINARYNINJACOREAPI BNRepository* BNNewRepositoryReference (BNRepository* r);
77327735 BINARYNINJACOREAPI void BNFreeRepository (BNRepository* r);
77337736 BINARYNINJACOREAPI char * BNRepositoryGetUrl (BNRepository* r);
77347737 BINARYNINJACOREAPI char * BNRepositoryGetRepoPath (BNRepository* r);
7735- BINARYNINJACOREAPI BNPlugin ** BNRepositoryGetPlugins (BNRepository* r, size_t * count);
7736- BINARYNINJACOREAPI void BNFreeRepositoryPluginList (BNPlugin ** r);
7738+ BINARYNINJACOREAPI BNRepoPlugin ** BNRepositoryGetPlugins (BNRepository* r, size_t * count);
7739+ BINARYNINJACOREAPI void BNFreeRepositoryPluginList (BNRepoPlugin ** r);
77377740 BINARYNINJACOREAPI void BNRepositoryFreePluginDirectoryList (char ** list, size_t count);
7738- BINARYNINJACOREAPI BNPlugin * BNRepositoryGetPluginByPath (BNRepository* r, const char * pluginPath);
7741+ BINARYNINJACOREAPI BNRepoPlugin * BNRepositoryGetPluginByPath (BNRepository* r, const char * pluginPath);
77397742 BINARYNINJACOREAPI const char * BNRepositoryGetPluginsPath (BNRepository* r);
77407743
7741- BINARYNINJACOREAPI bool BNRepositoryManagerCheckForUpdates ();
7742- BINARYNINJACOREAPI BNRepository** BNRepositoryManagerGetRepositories (size_t * count);
7744+ BINARYNINJACOREAPI BNRepositoryManager* BNCreateRepositoryManager (const char * enabledPluginsPath);
7745+ BINARYNINJACOREAPI BNRepositoryManager* BNNewRepositoryManagerReference (BNRepositoryManager* r);
7746+ BINARYNINJACOREAPI void BNFreeRepositoryManager (BNRepositoryManager* r);
7747+ BINARYNINJACOREAPI bool BNRepositoryManagerCheckForUpdates (BNRepositoryManager* r);
7748+ BINARYNINJACOREAPI BNRepository** BNRepositoryManagerGetRepositories (BNRepositoryManager* r, size_t * count);
77437749 BINARYNINJACOREAPI void BNFreeRepositoryManagerRepositoriesList (BNRepository** r);
7744- BINARYNINJACOREAPI bool BNRepositoryManagerAddRepository (const char * url, const char * repoPath);
7745- BINARYNINJACOREAPI BNRepository* BNRepositoryGetRepositoryByPath (const char * repoPath);
7750+ BINARYNINJACOREAPI bool BNRepositoryManagerAddRepository (
7751+ BNRepositoryManager* r, const char * url, const char * repoPath);
7752+ BINARYNINJACOREAPI BNRepository* BNRepositoryGetRepositoryByPath (BNRepositoryManager* r, const char * repoPath);
7753+ BINARYNINJACOREAPI BNRepositoryManager* BNGetRepositoryManager (void );
77467754
7747- BINARYNINJACOREAPI BNRepository* BNRepositoryManagerGetDefaultRepository ();
7755+ BINARYNINJACOREAPI BNRepository* BNRepositoryManagerGetDefaultRepository (BNRepositoryManager* r );
77487756
77497757 // Components
77507758
0 commit comments