summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hcid/adapter.c18
-rw-r--r--hcid/adapter.h2
2 files changed, 20 insertions, 0 deletions
diff --git a/hcid/adapter.c b/hcid/adapter.c
index b18b054f..4b1bc0eb 100644
--- a/hcid/adapter.c
+++ b/hcid/adapter.c
@@ -2130,6 +2130,24 @@ static void create_device_req_free(struct create_device_req *create)
create = NULL;
}
+struct device *adapter_get_device(struct adapter *adapter, const char *src)
+{
+ struct device *device;
+ GSList *l;
+
+ if (!adapter)
+ return NULL;
+
+ l = g_slist_find_custom(adapter->devices,
+ src, (GCompareFunc) device_address_cmp);
+ if (!l)
+ return NULL;
+
+ device = l->data;
+
+ return device;
+}
+
static gboolean create_bonding_conn_complete(GIOChannel *io, GIOCondition cond,
struct adapter *adapter)
{
diff --git a/hcid/adapter.h b/hcid/adapter.h
index d64930bc..0ab02c77 100644
--- a/hcid/adapter.h
+++ b/hcid/adapter.h
@@ -113,6 +113,8 @@ struct adapter {
dbus_bool_t adapter_init(DBusConnection *conn, const char *path);
+struct device *adapter_get_device(struct adapter *adapter, const char *src);
+
const char *major_class_str(uint32_t class);
const char *minor_class_str(uint32_t class);