summaryrefslogtreecommitdiffstats
path: root/src/device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/device.c')
-rw-r--r--src/device.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/device.c b/src/device.c
index b22695e1..a8f40f8e 100644
--- a/src/device.c
+++ b/src/device.c
@@ -61,7 +61,6 @@
#include "glib-helper.h"
#include "agent.h"
#include "sdp-xml.h"
-#include "driver.h"
#define DEFAULT_XML_BUF_SIZE 1024
#define DISCONNECT_TIMER 2
@@ -110,6 +109,8 @@ static uint16_t uuid_list[] = {
0
};
+static GSList *device_drivers = NULL;
+
static void device_free(gpointer user_data)
{
struct btd_device *device = user_data;
@@ -618,13 +619,13 @@ sdp_record_t *get_record(sdp_list_t *recs, const char *uuid)
void device_probe_drivers(struct btd_device *device, GSList *uuids, sdp_list_t *recs)
{
- GSList *list = btd_get_device_drivers();
+ GSList *list;
const char **uuid;
int err;
debug("Probe drivers for %s", device->path);
- for (; list; list = list->next) {
+ for (list = device_drivers; list; list = list->next) {
struct btd_device_driver *driver = list->data;
GSList *records = NULL;
@@ -1083,3 +1084,15 @@ uint8_t device_get_auth(struct btd_device *device)
{
return device->auth;
}
+
+int btd_register_device_driver(struct btd_device_driver *driver)
+{
+ device_drivers = g_slist_append(device_drivers, driver);
+
+ return 0;
+}
+
+void btd_unregister_device_driver(struct btd_device_driver *driver)
+{
+ device_drivers = g_slist_remove(device_drivers, driver);
+}