aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth/hci_core.h
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@intel.com>2015-03-06 21:08:52 +0200
committerMarcel Holtmann <marcel@holtmann.org>2015-03-06 20:15:21 +0100
commitb9a245fb12315f8c6528b29a991a004859c982d5 (patch)
tree8b4f636e8a1f9b9dd88b7b09b3e9c5dffec3f1ba /include/net/bluetooth/hci_core.h
parentBluetooth: Convert mgmt to use HCI chan registration API (diff)
downloadlinux-dev-b9a245fb12315f8c6528b29a991a004859c982d5.tar.xz
linux-dev-b9a245fb12315f8c6528b29a991a004859c982d5.zip
Bluetooth: Move all mgmt command quirks to handler table
In order to completely generalize the mgmt command handling we need to move away command-specific information from mgmt_control() into the actual command table. This patch adds a new 'flags' field to the handler entries which can now contain the following command specific information: - Command takes variable length parameters - Command doesn't target any specific HCI device - Command can be sent when the HCI device is unconfigured After this the mgmt_control() function is completely generic and can potentially be reused by new HCI channels. Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'include/net/bluetooth/hci_core.h')
-rw-r--r--include/net/bluetooth/hci_core.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index b2a183d201b7..afc641c5e55c 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -1273,11 +1273,15 @@ void hci_send_to_monitor(struct hci_dev *hdev, struct sk_buff *skb);
void hci_sock_dev_event(struct hci_dev *hdev, int event);
+#define HCI_MGMT_VAR_LEN (1 << 0)
+#define HCI_MGMT_NO_HDEV (1 << 1)
+#define HCI_MGMT_UNCONFIGURED (1 << 2)
+
struct hci_mgmt_handler {
int (*func) (struct sock *sk, struct hci_dev *hdev, void *data,
u16 data_len);
- bool var_len;
size_t data_len;
+ unsigned long flags;
};
struct hci_mgmt_chan {