@@ -253,9 +253,10 @@ extern "C"
253253 typedef struct BNScriptingInstance BNScriptingInstance;
254254 typedef struct BNMainThreadAction BNMainThreadAction;
255255 typedef struct BNBackgroundTask BNBackgroundTask;
256- typedef struct BNRepository BNRepository;
257- typedef struct BNRepoPlugin BNRepoPlugin;
258- typedef struct BNRepositoryManager BNRepositoryManager;
256+ typedef struct BNExtensionManager BNExtensionManager;
257+ typedef struct BNExtensionChannel BNExtensionChannel;
258+ typedef struct BNExtension BNExtension;
259+ typedef struct BNExtensionVersion BNExtensionVersion;
259260 typedef struct BNComponent BNComponent;
260261 typedef struct BNSettings BNSettings;
261262 typedef struct BNMetadata BNMetadata;
@@ -3685,15 +3686,14 @@ extern "C"
36853686 BINARYNINJACOREAPI void BNDisablePlugins (void );
36863687 BINARYNINJACOREAPI bool BNIsPluginsEnabled (void );
36873688 BINARYNINJACOREAPI void BNInitUserPlugins (void ); // Deprecated, use BNInitPlugins
3688- BINARYNINJACOREAPI void BNInitRepoPlugins (void );
3689+ BINARYNINJACOREAPI void BNInitExtensions (void );
36893690 BINARYNINJACOREAPI void BNLoadPluginsInDirectory (const char *);
36903691
36913692 BINARYNINJACOREAPI char * BNGetInstallDirectory (void );
36923693 BINARYNINJACOREAPI char * BNGetBundledPluginDirectory (void );
36933694 BINARYNINJACOREAPI void BNSetBundledPluginDirectory (const char * path);
36943695 BINARYNINJACOREAPI char * BNGetUserDirectory (void );
36953696 BINARYNINJACOREAPI char * BNGetUserPluginDirectory (void );
3696- BINARYNINJACOREAPI char * BNGetRepositoriesDirectory (void );
36973697 BINARYNINJACOREAPI char * BNGetSettingsFileName (void );
36983698 BINARYNINJACOREAPI void BNSaveLastRun (void );
36993699
@@ -7214,70 +7214,75 @@ extern "C"
72147214 BINARYNINJACOREAPI bool BNDemangleGeneric (BNArchitecture* arch, const char * name,
72157215 BNType** outType, BNQualifiedName* outVarName, BNBinaryView* view, bool simplify);
72167216
7217- // Plugin repository APIs
7218- // BINARYNINJACOREAPI char** BNPluginGetApis(BNRepoPlugin* p, size_t* count);
7219- BINARYNINJACOREAPI const char * BNPluginGetAuthor (BNRepoPlugin* p);
7220- BINARYNINJACOREAPI const char * BNPluginGetDescription (BNRepoPlugin* p);
7221- // BINARYNINJACOREAPI const char* BNPluginGetLongdescription(BNRepoPlugin* p);
7222- // BINARYNINJACOREAPI BNVersionInfo BNPluginGetMinimumVersionInfo(BNRepoPlugin* p);
7223- // BINARYNINJACOREAPI BNVersionInfo BNPluginGetMaximumVersionInfo(BNRepoPlugin* p);
7217+ // Extension Version APIs
7218+ BINARYNINJACOREAPI const char * BNExtensionVersionGetVersionString (BNExtensionVersion* v);
7219+ BINARYNINJACOREAPI const char * BNExtensionVersionGetLongDescription (BNExtensionVersion* v);
7220+ BINARYNINJACOREAPI const char * BNExtensionVersionGetChangelog (BNExtensionVersion* v);
7221+ BINARYNINJACOREAPI BNVersionInfo BNExtensionVersionGetMinimumVersionInfo (BNExtensionVersion* v);
7222+ BINARYNINJACOREAPI BNVersionInfo BNExtensionVersionGetMaximumVersionInfo (BNExtensionVersion* v);
7223+ BINARYNINJACOREAPI const char * BNExtensionVersionGetDependencies (BNExtensionVersion* v);
7224+ BINARYNINJACOREAPI const char * BNExtensionVersionGetDownloadUrl (BNExtensionVersion* v, bool useShortUrl);
7225+ BINARYNINJACOREAPI bool BNExtensionVersionInstallDependencies (BNExtensionVersion* v);
7226+ BINARYNINJACOREAPI BNExtensionVersion* BNNewExtensionVersionReference (BNExtensionVersion* v);
7227+ BINARYNINJACOREAPI void BNFreeExtensionVersion (BNExtensionVersion* v);
7228+
7229+ // Extension APIs (formerly Plugin APIs)
7230+ BINARYNINJACOREAPI const char * BNExtensionGetAuthor (BNExtension* p);
7231+ BINARYNINJACOREAPI const char * BNExtensionGetDescription (BNExtension* p);
7232+ BINARYNINJACOREAPI const char * BNExtensionGetName (BNExtension* p);
7233+ BINARYNINJACOREAPI const char * BNExtensionGetProjectUrl (BNExtension* p);
72247234 BINARYNINJACOREAPI BNVersionInfo BNParseVersionString (const char * v);
72257235 BINARYNINJACOREAPI bool BNVersionLessThan (const BNVersionInfo smaller, const BNVersionInfo larger);
7226- BINARYNINJACOREAPI const char * BNPluginGetName (BNRepoPlugin* p);
7227- BINARYNINJACOREAPI const char * BNPluginGetProjectUrl (BNRepoPlugin* p);
7228- // BINARYNINJACOREAPI const char* BNPluginGetPackageUrl(BNRepoPlugin* p);
7229- // BINARYNINJACOREAPI const char* BNPluginGetVersions(BNRepoPlugin* p);
7230- // BINARYNINJACOREAPI const bool BNPluginGetViewOnly(BNRepoPlugin* p);
7236+ BINARYNINJACOREAPI BNPluginType* BNExtensionGetPluginTypes (BNExtension* p, size_t * count);
72317237 BINARYNINJACOREAPI void BNFreePluginTypes (BNPluginType* r);
7232- BINARYNINJACOREAPI BNRepoPlugin* BNNewPluginReference (BNRepoPlugin* r);
7233- BINARYNINJACOREAPI void BNFreePlugin (BNRepoPlugin* plugin);
7234- BINARYNINJACOREAPI const char * BNPluginGetPath (BNRepoPlugin* p);
7235- // BINARYNINJACOREAPI const char* BNPluginGetSubdir(BNRepoPlugin* p);
7236- // BINARYNINJACOREAPI const char* BNPluginGetDependencies(BNRepoPlugin* p);
7237- BINARYNINJACOREAPI bool BNPluginIsInstalled (BNRepoPlugin* p);
7238- BINARYNINJACOREAPI bool BNPluginIsEnabled (BNRepoPlugin* p);
7239- BINARYNINJACOREAPI BNPluginStatus BNPluginGetPluginStatus (BNRepoPlugin* p);
7240- BINARYNINJACOREAPI BNPluginType* BNPluginGetPluginTypes (BNRepoPlugin* p, size_t * count);
7241- BINARYNINJACOREAPI bool BNPluginEnable (BNRepoPlugin* p, bool force);
7242- BINARYNINJACOREAPI bool BNPluginDisable (BNRepoPlugin* p);
7243- // BINARYNINJACOREAPI bool BNPluginInstall(BNRepoPlugin* p);
7244- // BINARYNINJACOREAPI bool BNPluginInstallDependencies(BNRepoPlugin* p);
7245- BINARYNINJACOREAPI bool BNPluginUninstall (BNRepoPlugin* p);
7246- BINARYNINJACOREAPI bool BNPluginUpdate (BNRepoPlugin* p);
7247- // BINARYNINJACOREAPI void BNFreePluginPlatforms(char** platforms, size_t count);
7248- BINARYNINJACOREAPI const char * BNPluginGetRepository (BNRepoPlugin* p);
7249- BINARYNINJACOREAPI bool BNPluginIsBeingDeleted (BNRepoPlugin* p);
7250- BINARYNINJACOREAPI bool BNPluginIsBeingUpdated (BNRepoPlugin* p);
7251- BINARYNINJACOREAPI bool BNPluginIsRunning (BNRepoPlugin* p);
7252- BINARYNINJACOREAPI bool BNPluginIsUpdatePending (BNRepoPlugin* p);
7253- BINARYNINJACOREAPI bool BNPluginIsDisablePending (BNRepoPlugin* p);
7254- BINARYNINJACOREAPI bool BNPluginIsDeletePending (BNRepoPlugin* p);
7255- BINARYNINJACOREAPI bool BNPluginIsUpdateAvailable (BNRepoPlugin* p);
7256- BINARYNINJACOREAPI bool BNPluginAreDependenciesBeingInstalled (BNRepoPlugin* p);
7257-
7258- // BINARYNINJACOREAPI uint64_t BNPluginGetLastUpdate(BNRepoPlugin* p);
7259-
7260- BINARYNINJACOREAPI BNRepository* BNNewRepositoryReference (BNRepository* r);
7261- BINARYNINJACOREAPI void BNFreeRepository (BNRepository* r);
7262- BINARYNINJACOREAPI char * BNRepositoryGetUrl (BNRepository* r);
7263- BINARYNINJACOREAPI char * BNRepositoryGetRepoPath (BNRepository* r);
7264- BINARYNINJACOREAPI BNRepoPlugin** BNRepositoryGetPlugins (BNRepository* r, size_t * count);
7265- BINARYNINJACOREAPI void BNFreeRepositoryPluginList (BNRepoPlugin** r);
7266- BINARYNINJACOREAPI void BNRepositoryFreePluginDirectoryList (char ** list, size_t count);
7267- BINARYNINJACOREAPI BNRepoPlugin* BNRepositoryGetPluginByPath (BNRepository* r, const char * pluginPath);
7268- BINARYNINJACOREAPI const char * BNRepositoryGetPluginsPath (BNRepository* r);
7269-
7270- BINARYNINJACOREAPI BNRepositoryManager* BNNewRepositoryManagerReference (BNRepositoryManager* r);
7271- BINARYNINJACOREAPI void BNFreeRepositoryManager (BNRepositoryManager* r);
7272- BINARYNINJACOREAPI bool BNRepositoryManagerCheckForUpdates (BNRepositoryManager* r);
7273- BINARYNINJACOREAPI BNRepository** BNRepositoryManagerGetRepositories (BNRepositoryManager* r, size_t * count);
7274- BINARYNINJACOREAPI void BNFreeRepositoryManagerRepositoriesList (BNRepository** r);
7275- BINARYNINJACOREAPI bool BNRepositoryManagerAddRepository (
7276- BNRepositoryManager* r, const char * url, const char * repoPath);
7277- BINARYNINJACOREAPI BNRepository* BNRepositoryGetRepositoryByPath (BNRepositoryManager* r, const char * repoPath);
7278- BINARYNINJACOREAPI BNRepositoryManager* BNGetRepositoryManager (void );
7279-
7280- BINARYNINJACOREAPI BNRepository* BNRepositoryManagerGetDefaultRepository (BNRepositoryManager* r);
7238+ BINARYNINJACOREAPI BNExtensionVersion** BNExtensionGetVersions (BNExtension* p, size_t * count);
7239+ BINARYNINJACOREAPI void BNFreeExtensionVersionList (BNExtensionVersion** v);
7240+ BINARYNINJACOREAPI BNExtensionVersion* BNExtensionGetCurrentVersion (BNExtension* p);
7241+ BINARYNINJACOREAPI BNExtensionVersion* BNExtensionGetLatestVersion (BNExtension* p);
7242+ BINARYNINJACOREAPI BNExtension* BNNewExtensionReference (BNExtension* p);
7243+ BINARYNINJACOREAPI void BNFreeExtension (BNExtension* plugin);
7244+ BINARYNINJACOREAPI const char * BNExtensionGetPath (BNExtension* p);
7245+ BINARYNINJACOREAPI const char * BNExtensionGetChannelName (BNExtension* p);
7246+ BINARYNINJACOREAPI bool BNExtensionIsInstalled (BNExtension* p);
7247+ BINARYNINJACOREAPI bool BNExtensionIsEnabled (BNExtension* p);
7248+ BINARYNINJACOREAPI BNPluginStatus BNExtensionGetPluginStatus (BNExtension* p);
7249+ BINARYNINJACOREAPI bool BNExtensionEnable (BNExtension* p);
7250+ BINARYNINJACOREAPI bool BNExtensionDisable (BNExtension* p);
7251+ BINARYNINJACOREAPI bool BNExtensionInstall (BNExtension* p, BNExtensionVersion* v);
7252+ BINARYNINJACOREAPI bool BNExtensionInstallDependencies (BNExtension* p);
7253+ BINARYNINJACOREAPI bool BNExtensionUninstall (BNExtension* p);
7254+ BINARYNINJACOREAPI bool BNExtensionUpdate (BNExtension* p, BNExtensionVersion* v);
7255+ BINARYNINJACOREAPI bool BNExtensionIsBeingDeleted (BNExtension* p);
7256+ BINARYNINJACOREAPI bool BNExtensionIsBeingUpdated (BNExtension* p);
7257+ BINARYNINJACOREAPI bool BNExtensionIsRunning (BNExtension* p);
7258+ BINARYNINJACOREAPI bool BNExtensionIsUpdatePending (BNExtension* p);
7259+ BINARYNINJACOREAPI bool BNExtensionIsDisablePending (BNExtension* p);
7260+ BINARYNINJACOREAPI bool BNExtensionIsDeletePending (BNExtension* p);
7261+ BINARYNINJACOREAPI bool BNExtensionIsUpdateAvailable (BNExtension* p);
7262+ BINARYNINJACOREAPI bool BNExtensionAreDependenciesBeingInstalled (BNExtension* p);
7263+
7264+ // Channel APIs (formerly Repository APIs)
7265+ BINARYNINJACOREAPI BNExtensionChannel* BNNewChannelReference (BNExtensionChannel* r);
7266+ BINARYNINJACOREAPI void BNFreeChannel (BNExtensionChannel* r);
7267+ BINARYNINJACOREAPI char * BNChannelGetUrl (BNExtensionChannel* r);
7268+ BINARYNINJACOREAPI char * BNChannelGetName (BNExtensionChannel* r);
7269+ BINARYNINJACOREAPI BNExtension** BNChannelGetExtensions (BNExtensionChannel* r, size_t * count);
7270+ BINARYNINJACOREAPI void BNFreeChannelExtensionList (BNExtension** r);
7271+ BINARYNINJACOREAPI BNExtension* BNChannelGetExtensionByPath (BNExtensionChannel* r, const char * extensionPath);
7272+ BINARYNINJACOREAPI const char * BNChannelGetFullPath (BNExtensionChannel* r);
7273+
7274+ // Extension Manager APIs (formerly Repository Manager APIs)
7275+ BINARYNINJACOREAPI BNExtensionManager* BNNewExtensionManagerReference (BNExtensionManager* r);
7276+ BINARYNINJACOREAPI void BNFreeExtensionManager (BNExtensionManager* r);
7277+ BINARYNINJACOREAPI BNExtensionManager* BNGetExtensionManager (void );
7278+ BINARYNINJACOREAPI bool BNExtensionManagerCheckForUpdates (BNExtensionManager* r);
7279+ BINARYNINJACOREAPI bool BNExtensionManagerFetchChannelsAsync (BNExtensionManager* r);
7280+ BINARYNINJACOREAPI BNExtensionChannel** BNExtensionManagerGetChannels (BNExtensionManager* r, size_t * count);
7281+ BINARYNINJACOREAPI void BNFreeExtensionManagerChannelsList (BNExtensionChannel** r);
7282+ BINARYNINJACOREAPI bool BNExtensionManagerAddChannel (
7283+ BNExtensionManager* r, const char * url, const char * name, bool isUserChannel);
7284+ BINARYNINJACOREAPI BNExtensionChannel* BNExtensionManagerGetChannelByName (BNExtensionManager* r, const char * name);
7285+ BINARYNINJACOREAPI BNExtensionChannel* BNExtensionManagerGetDefaultChannel (BNExtensionManager* r);
72817286
72827287 // Components
72837288
0 commit comments