aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mm-plugin-manager.c50
-rw-r--r--src/mm-plugin-manager.h13
2 files changed, 63 insertions, 0 deletions
diff --git a/src/mm-plugin-manager.c b/src/mm-plugin-manager.c
index 5d3f30fc..42d569c9 100644
--- a/src/mm-plugin-manager.c
+++ b/src/mm-plugin-manager.c
@@ -409,6 +409,56 @@ mm_plugin_manager_find_port_support (MMPluginManager *self,
info);
}
+gboolean
+mm_plugin_manager_is_finding_device_support (MMPluginManager *self,
+ const gchar *physdev_path,
+ const gchar **subsys,
+ const gchar **name)
+{
+ SupportsInfoList *list;
+
+ list = g_hash_table_lookup (self->priv->supports,
+ physdev_path);
+ if (list) {
+ if (subsys)
+ *subsys = ((SupportsInfo *)list->info_list->data)->subsys;
+ if (name)
+ *name = ((SupportsInfo *)list->info_list->data)->name;
+
+ return TRUE;
+ }
+ return FALSE;
+}
+
+gboolean
+mm_plugin_manager_is_finding_port_support (MMPluginManager *self,
+ const gchar *subsys,
+ const gchar *name,
+ const gchar *physdev_path)
+{
+ SupportsInfoList *list;
+
+ list = g_hash_table_lookup (self->priv->supports,
+ physdev_path);
+ if (list) {
+ GSList *l;
+
+ for (l = list->info_list;
+ l;
+ l = g_slist_next (l)) {
+ SupportsInfo *info = l->data;
+
+ if (g_str_equal (subsys, info->subsys) &&
+ g_str_equal (name, info->name)) {
+ /* Support check task already exists */
+ return TRUE;
+ }
+ }
+ }
+
+ return FALSE;
+}
+
static MMPlugin *
load_plugin (const gchar *path)
{
diff --git a/src/mm-plugin-manager.h b/src/mm-plugin-manager.h
index 825e69c6..42f6a750 100644
--- a/src/mm-plugin-manager.h
+++ b/src/mm-plugin-manager.h
@@ -59,4 +59,17 @@ MMPlugin *mm_plugin_manager_find_port_support_finish (MMPluginManager *self,
GAsyncResult *result,
GError **error);
+/* Returns TRUE if there is an ongoing find operation on the given port */
+gboolean mm_plugin_manager_is_finding_port_support (MMPluginManager *self,
+ const gchar *subsys,
+ const gchar *name,
+ const gchar *physdev_path);
+
+/* Returns TRUE if there is an ongoing find operation in a port of the given
+ * device (and if so, returns subsystem and name of the port) */
+gboolean mm_plugin_manager_is_finding_device_support (MMPluginManager *self,
+ const gchar *physdev_path,
+ const gchar **subsys,
+ const gchar **name);
+
#endif /* MM_PLUGIN_MANAGER_H */