diff options
author | Andrei Emeltchenko <andrei.emeltchenko@intel.com> | 2012-05-25 08:09:26 -0400 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2012-06-04 23:34:09 -0400 |
commit | 523e93cdb39086b25af2ed19d2a69248510727a2 (patch) | |
tree | bbb4418df21d8893f7b71b7d9788342ddb8b62e2 /include/net/bluetooth | |
parent | 82781e634f815e9a675ef643a5e11da0cf77ce0e (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.h | 81 |
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 | ||
530 | struct 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 | ||
538 | struct 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 | ||
546 | struct 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 |
529 | struct hci_cp_sniff_mode { | 552 | struct 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 | ||
847 | struct hci_cp_read_local_amp_assoc { | ||
848 | __u8 phy_handle; | ||
849 | __le16 len_so_far; | ||
850 | __le16 max_len; | ||
851 | } __packed; | ||
852 | struct 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 | ||
860 | struct 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; | ||
866 | struct 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 |
824 | struct hci_cp_le_set_event_mask { | 872 | struct 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 | ||
1244 | struct hci_ev_phy_link_complete { | ||
1245 | __u8 status; | ||
1246 | __u8 phy_handle; | ||
1247 | } __packed; | ||
1248 | |||
1249 | #define HCI_EV_CHANNEL_SELECTED 0x41 | ||
1250 | struct hci_ev_channel_selected { | ||
1251 | __u8 phy_handle; | ||
1252 | } __packed; | ||
1253 | |||
1254 | #define HCI_EV_DISCONN_PHY_LINK_COMPLETE 0x42 | ||
1255 | struct 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 | ||
1262 | struct 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 | ||
1270 | struct 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 |
1196 | struct hci_comp_blocks_info { | 1277 | struct hci_comp_blocks_info { |
1197 | __le16 handle; | 1278 | __le16 handle; |