summaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth/hci_core.h
diff options
context:
space:
mode:
authorAndre Guedes2011-05-26 21:23:50 +0200
committerGustavo F. Padovan2011-06-08 21:58:17 +0200
commit76c8686f8871f1bcb2dc8b4c5311cd0e2f73d4cd (patch)
tree379c715844e57ebb14abbf0285c3f4afa414716a /include/net/bluetooth/hci_core.h
parentBluetooth: Add advertising report meta event structs (diff)
downloadkernel-qcow2-linux-76c8686f8871f1bcb2dc8b4c5311cd0e2f73d4cd.tar.gz
kernel-qcow2-linux-76c8686f8871f1bcb2dc8b4c5311cd0e2f73d4cd.tar.xz
kernel-qcow2-linux-76c8686f8871f1bcb2dc8b4c5311cd0e2f73d4cd.zip
Bluetooth: LE advertising cache
This patch implements the LE advertising cache. It stores sensitive information (bdaddr and bdaddr_type so far) gathered from LE advertising report events. Only advertising entries from connectables devices are added to the cache. Signed-off-by: Andre Guedes <andre.guedes@openbossa.org> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'include/net/bluetooth/hci_core.h')
-rw-r--r--include/net/bluetooth/hci_core.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 6c994c004d15..10dfb85ad6a1 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -89,6 +89,12 @@ struct oob_data {
u8 randomizer[16];
};
+struct adv_entry {
+ struct list_head list;
+ bdaddr_t bdaddr;
+ u8 bdaddr_type;
+};
+
#define NUM_REASSEMBLY 4
struct hci_dev {
struct list_head list;
@@ -181,6 +187,8 @@ struct hci_dev {
struct list_head remote_oob_data;
+ struct list_head adv_entries;
+
struct hci_dev_stats stat;
struct sk_buff_head driver_init;
@@ -527,6 +535,11 @@ int hci_add_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 *hash,
u8 *randomizer);
int hci_remove_remote_oob_data(struct hci_dev *hdev, bdaddr_t *bdaddr);
+int hci_adv_entries_clear(struct hci_dev *hdev);
+struct adv_entry *hci_find_adv_entry(struct hci_dev *hdev, bdaddr_t *bdaddr);
+int hci_add_adv_entry(struct hci_dev *hdev,
+ struct hci_ev_le_advertising_info *ev);
+
void hci_del_off_timer(struct hci_dev *hdev);
void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb);