Add skeleton for storage drivers
[connman] / src / storage.c
index 41cfd42..1266fc2 100644 (file)
 
 #include "connman.h"
 
+static GSList *storage_list = NULL;
+
+static gint compare_priority(gconstpointer a, gconstpointer b)
+{
+       const struct connman_storage *storage1 = a;
+       const struct connman_storage *storage2 = b;
+
+       return storage2->priority - storage1->priority;
+}
+
+/**
+ * connman_storage_register:
+ * @storage: storage module
+ *
+ * Register a new storage module
+ *
+ * Returns: %0 on success
+ */
+int connman_storage_register(struct connman_storage *storage)
+{
+       DBG("storage %p name %s", storage, storage->name);
+
+       storage_list = g_slist_insert_sorted(storage_list, storage,
+                                                       compare_priority);
+
+       return 0;
+}
+
+/**
+ * connman_storage_unregister:
+ * @storage: storage module
+ *
+ * Remove a previously registered storage module
+ */
+void connman_storage_unregister(struct connman_storage *storage)
+{
+       DBG("storage %p name %s", storage, storage->name);
+
+       storage_list = g_slist_remove(storage_list, storage);
+}
+
 int __connman_storage_init(void)
 {
        DBG("");