aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2014-02-19 07:57:44 -0500
committerMarcel Holtmann <marcel@holtmann.org>2014-02-19 11:04:23 -0500
commitca9142b8825c159897cc4a246ea27585c82add4b (patch)
tree9a61cba7282813a185cadea4c311dac406b58b5a /include/net/bluetooth
parent0a14ab416d7754be0bb0d4306c996f72f52fa5bf (diff)
Bluetooth: Return added key when adding LTKs and IRKs
The SMP code will need to postpone the mgmt event emission for the IRK and LTKs. To avoid extra lookups at the end of the key distribution simply return the added value from the add_ltk and add_irk functions. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'include/net/bluetooth')
-rw-r--r--include/net/bluetooth/hci_core.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index 64c4e3f0a515..5366dc9e25eb 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -787,9 +787,10 @@ int hci_add_link_key(struct hci_dev *hdev, struct hci_conn *conn, int new_key,
787 bdaddr_t *bdaddr, u8 *val, u8 type, u8 pin_len); 787 bdaddr_t *bdaddr, u8 *val, u8 type, u8 pin_len);
788struct smp_ltk *hci_find_ltk(struct hci_dev *hdev, __le16 ediv, u8 rand[8], 788struct smp_ltk *hci_find_ltk(struct hci_dev *hdev, __le16 ediv, u8 rand[8],
789 bool master); 789 bool master);
790int hci_add_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 addr_type, u8 type, 790struct smp_ltk *hci_add_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr,
791 int new_key, u8 authenticated, u8 tk[16], u8 enc_size, 791 u8 addr_type, u8 type, int new_key,
792 __le16 ediv, u8 rand[8]); 792 u8 authenticated, u8 tk[16], u8 enc_size,
793 __le16 ediv, u8 rand[8]);
793struct smp_ltk *hci_find_ltk_by_addr(struct hci_dev *hdev, bdaddr_t *bdaddr, 794struct smp_ltk *hci_find_ltk_by_addr(struct hci_dev *hdev, bdaddr_t *bdaddr,
794 u8 addr_type, bool master); 795 u8 addr_type, bool master);
795int hci_remove_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 bdaddr_type); 796int hci_remove_ltk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 bdaddr_type);
@@ -799,8 +800,8 @@ int hci_remove_link_key(struct hci_dev *hdev, bdaddr_t *bdaddr);
799struct smp_irk *hci_find_irk_by_rpa(struct hci_dev *hdev, bdaddr_t *rpa); 800struct smp_irk *hci_find_irk_by_rpa(struct hci_dev *hdev, bdaddr_t *rpa);
800struct smp_irk *hci_find_irk_by_addr(struct hci_dev *hdev, bdaddr_t *bdaddr, 801struct smp_irk *hci_find_irk_by_addr(struct hci_dev *hdev, bdaddr_t *bdaddr,
801 u8 addr_type); 802 u8 addr_type);
802int hci_add_irk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 addr_type, 803struct smp_irk *hci_add_irk(struct hci_dev *hdev, bdaddr_t *bdaddr,
803 u8 val[16], bdaddr_t *rpa); 804 u8 addr_type, u8 val[16], bdaddr_t *rpa);
804void hci_remove_irk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 addr_type); 805void hci_remove_irk(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 addr_type);
805void hci_smp_irks_clear(struct hci_dev *hdev); 806void hci_smp_irks_clear(struct hci_dev *hdev);
806 807