aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/bluetooth
diff options
context:
space:
mode:
authorAndrei Emeltchenko <andrei.emeltchenko@intel.com>2012-05-25 08:09:26 -0400
committerJohan Hedberg <johan.hedberg@intel.com>2012-06-04 23:34:09 -0400
commit523e93cdb39086b25af2ed19d2a69248510727a2 (patch)
treebbb4418df21d8893f7b71b7d9788342ddb8b62e2 /include/net/bluetooth
parent82781e634f815e9a675ef643a5e11da0cf77ce0e (diff)
Bluetooth: Define HCI AMP cmd struct
Add HCI commands to deal with Bluetooth AMP controllers. Those commands will be used by bluetooth and softamp code. Signed-off-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'include/net/bluetooth')
-rw-r--r--include/net/bluetooth/hci.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
index edb663908121..de09a26e4223 100644
--- a/include/net/bluetooth/hci.h
+++ b/include/net/bluetooth/hci.h
@@ -31,6 +31,7 @@
31#define HCI_MAX_FRAME_SIZE (HCI_MAX_ACL_SIZE + 4) 31#define HCI_MAX_FRAME_SIZE (HCI_MAX_ACL_SIZE + 4)
32 32
33#define HCI_LINK_KEY_SIZE 16 33#define HCI_LINK_KEY_SIZE 16
34#define HCI_AMP_LINK_KEY_SIZE (2 * HCI_LINK_KEY_SIZE)
34 35
35/* HCI dev events */ 36/* HCI dev events */
36#define HCI_DEV_REG 1 37#define HCI_DEV_REG 1
@@ -525,6 +526,28 @@ struct hci_cp_io_capability_neg_reply {
525 __u8 reason; 526 __u8 reason;
526} __packed; 527} __packed;
527 528
529#define HCI_OP_CREATE_PHY_LINK 0x0435
530struct hci_cp_create_phy_link {
531 __u8 phy_handle;
532 __u8 key_len;
533 __u8 key_type;
534 __u8 key[HCI_AMP_LINK_KEY_SIZE];
535} __packed;
536
537#define HCI_OP_ACCEPT_PHY_LINK 0x0436
538struct hci_cp_accept_phy_link {
539 __u8 phy_handle;
540 __u8 key_len;
541 __u8 key_type;
542 __u8 key[HCI_AMP_LINK_KEY_SIZE];
543} __packed;
544
545#define HCI_OP_DISCONN_PHY_LINK 0x0437
546struct hci_cp_disconn_phy_link {
547 __u8 phy_handle;
548 __u8 reason;
549} __packed;
550
528#define HCI_OP_SNIFF_MODE 0x0803 551#define HCI_OP_SNIFF_MODE 0x0803
529struct hci_cp_sniff_mode { 552struct hci_cp_sniff_mode {
530 __le16 handle; 553 __le16 handle;
@@ -820,6 +843,31 @@ struct hci_rp_read_local_amp_info {
820 __le32 be_flush_to; 843 __le32 be_flush_to;
821} __packed; 844} __packed;
822 845
846#define HCI_OP_READ_LOCAL_AMP_ASSOC 0x140a
847struct hci_cp_read_local_amp_assoc {
848 __u8 phy_handle;
849 __le16 len_so_far;
850 __le16 max_len;
851} __packed;
852struct hci_rp_read_local_amp_assoc {
853 __u8 status;
854 __u8 phy_handle;
855 __le16 rem_len;
856 __u8 frag[0];
857} __packed;
858
859#define HCI_OP_WRITE_REMOTE_AMP_ASSOC 0x140b
860struct hci_cp_write_remote_amp_assoc {
861 __u8 phy_handle;
862 __le16 len_so_far;
863 __le16 rem_len;
864 __u8 frag[0];
865} __packed;
866struct hci_rp_write_remote_amp_assoc {
867 __u8 status;
868 __u8 phy_handle;
869} __packed;
870
823#define HCI_OP_LE_SET_EVENT_MASK 0x2001 871#define HCI_OP_LE_SET_EVENT_MASK 0x2001
824struct hci_cp_le_set_event_mask { 872struct hci_cp_le_set_event_mask {
825 __u8 mask[8]; 873 __u8 mask[8];
@@ -1192,6 +1240,39 @@ struct hci_ev_le_meta {
1192 __u8 subevent; 1240 __u8 subevent;
1193} __packed; 1241} __packed;
1194 1242
1243#define HCI_EV_PHY_LINK_COMPLETE 0x40
1244struct hci_ev_phy_link_complete {
1245 __u8 status;
1246 __u8 phy_handle;
1247} __packed;
1248
1249#define HCI_EV_CHANNEL_SELECTED 0x41
1250struct hci_ev_channel_selected {
1251 __u8 phy_handle;
1252} __packed;
1253
1254#define HCI_EV_DISCONN_PHY_LINK_COMPLETE 0x42
1255struct hci_ev_disconn_phy_link_complete {
1256 __u8 status;
1257 __u8 phy_handle;
1258 __u8 reason;
1259} __packed;
1260
1261#define HCI_EV_LOGICAL_LINK_COMPLETE 0x45
1262struct hci_ev_logical_link_complete {
1263 __u8 status;
1264 __le16 handle;
1265 __u8 phy_handle;
1266 __u8 flow_spec_id;
1267} __packed;
1268
1269#define HCI_EV_DISCONN_LOGICAL_LINK_COMPLETE 0x46
1270struct hci_ev_disconn_logical_link_complete {
1271 __u8 status;
1272 __le16 handle;
1273 __u8 reason;
1274} __packed;
1275
1195#define HCI_EV_NUM_COMP_BLOCKS 0x48 1276#define HCI_EV_NUM_COMP_BLOCKS 0x48
1196struct hci_comp_blocks_info { 1277struct hci_comp_blocks_info {
1197 __le16 handle; 1278 __le16 handle;