summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Krasnyansky <maxk@qualcomm.com>2002-06-18 18:15:13 +0000
committerMax Krasnyansky <maxk@qualcomm.com>2002-06-18 18:15:13 +0000
commitd316a5fbab4a41ce3f8321eef407db9c53b57e85 (patch)
tree9ba83af819b9491225fcc41229485185acd65959
parent4837bd7e9ba55361aeca45610a160dd107d5be2f (diff)
Added hci_devid function.
-rw-r--r--include/hci_lib.h1
-rw-r--r--src/hci.c13
2 files changed, 14 insertions, 0 deletions
diff --git a/include/hci_lib.h b/include/hci_lib.h
index 7fd95cfc..982c7608 100644
--- a/include/hci_lib.h
+++ b/include/hci_lib.h
@@ -62,6 +62,7 @@ int hci_disconnect(int dd, uint16_t handle, uint8_t reason, int to);
int hci_inquiry(int dev_id, int len, int num_rsp, uint8_t *lap, inquiry_info **ii, long flags);
int hci_devinfo(int dev_id, struct hci_dev_info *di);
int hci_devba(int dev_id, bdaddr_t *ba);
+int hci_devid(bdaddr_t *ba);
int hci_local_name(int dd, int len, char *name, int to);
int hci_remote_name(int dd, bdaddr_t *ba, int len, char *name, int to);
diff --git a/src/hci.c b/src/hci.c
index bc645686..f72ef760 100644
--- a/src/hci.c
+++ b/src/hci.c
@@ -399,6 +399,14 @@ static int __other_bdaddr(int s, int dev_id, long arg)
return bacmp((bdaddr_t *)arg, &di.bdaddr);
}
+static int __same_bdaddr(int s, int dev_id, long arg)
+{
+ struct hci_dev_info di = {dev_id: dev_id};
+ if (ioctl(s, HCIGETDEVINFO, (void*) &di))
+ return 0;
+ return !bacmp((bdaddr_t *)arg, &di.bdaddr);
+}
+
int hci_get_route(bdaddr_t *bdaddr)
{
if (bdaddr)
@@ -407,6 +415,11 @@ int hci_get_route(bdaddr_t *bdaddr)
return hci_for_each_dev(HCI_UP, NULL, 0);
}
+int hci_devid(bdaddr_t *bdaddr)
+{
+ return hci_for_each_dev(HCI_UP, __same_bdaddr, (long) bdaddr);
+}
+
int hci_devinfo(int dev_id, struct hci_dev_info *di)
{
int s, err;