u16 supervision_timeout);
int mgmt_le_conn_update_failed(struct hci_dev *hdev, bdaddr_t *bdaddr,
u8 link_type, u8 addr_type, u8 status);
+void mgmt_rpa_updated_evt(struct hci_dev *hdev, bdaddr_t *rpa);
#endif
bool mgmt_get_connectable(struct hci_dev *hdev);
void mgmt_set_connectable_complete(struct hci_dev *hdev, u8 status);
__le16 max_rx_time;
} __packed;
+#define MGMT_EV_RPA_CHANGED (TIZEN_EV_BASE + 0x0e)
+struct mgmt_ev_rpa_changed {
+ bdaddr_t bdaddr;
+} __packed;
+
#endif /* CONFIG_TIZEN_WIP */
to = msecs_to_jiffies(hdev->rpa_timeout * 1000);
queue_delayed_work(hdev->workqueue, &hdev->rpa_expired, to);
+#ifdef CONFIG_TIZEN_WIP
+ mgmt_rpa_updated_evt(hdev, &hdev->rpa);
+#endif
return 0;
}
hci_dev_unlock(hdev);
return err;
}
+
+void mgmt_rpa_updated_evt(struct hci_dev *hdev, bdaddr_t *rpa)
+{
+ struct mgmt_ev_rpa_changed mgmt_ev;
+
+ BT_DBG("RPA updated");
+
+ bacpy(&mgmt_ev.bdaddr, rpa);
+
+ mgmt_event(MGMT_EV_RPA_CHANGED, hdev, &mgmt_ev,
+ sizeof(struct mgmt_ev_rpa_changed), NULL);
+}
+
static int connect_bt_6lowpan(struct sock *sk, struct hci_dev *hdev,
void *data, u16 len)
{