hcidefs.h revision 979e3421c8111a56ebfcf176f6383df58eed52ea
15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************
25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
3a6ce7751d84218c193eb90d390aef23217b1737eWei Wang *  Copyright (C) 1999-2014 Broadcom Corporation
45738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
55738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
65738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  you may not use this file except in compliance with the License.
75738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  You may obtain a copy of the License at:
85738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
95738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  http://www.apache.org/licenses/LICENSE-2.0
105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  See the License for the specific language governing permissions and
155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *  limitations under the License.
165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project *
175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project ******************************************************************************/
185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifndef HCIDEFS_H
205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIDEFS_H
215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PROTO_VERSION     0x01      /* Version for BT spec 1.1          */
235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PROTO_VERSION_1_2 0x02      /* Version for BT spec 1.2          */
245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PROTO_VERSION_2_0 0x03      /* Version for BT spec 2.0          */
255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PROTO_VERSION_2_1 0x04      /* Version for BT spec 2.1 [Lisbon] */
265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PROTO_VERSION_3_0 0x05      /* Version for BT spec 3.0          */
275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PROTO_REVISION    0x000C    /* Current implementation version   */
285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Definitions for HCI groups
305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GRP_LINK_CONTROL_CMDS       (0x01 << 10)            /* 0x0400 */
325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GRP_LINK_POLICY_CMDS        (0x02 << 10)            /* 0x0800 */
335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GRP_HOST_CONT_BASEBAND_CMDS (0x03 << 10)            /* 0x0C00 */
345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GRP_INFORMATIONAL_PARAMS    (0x04 << 10)            /* 0x1000 */
355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GRP_STATUS_PARAMS           (0x05 << 10)            /* 0x1400 */
365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GRP_TESTING_CMDS            (0x06 << 10)            /* 0x1800 */
375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GRP_VENDOR_SPECIFIC         (0x3F << 10)            /* 0xFC00 */
395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Group occupies high 6 bits of the HCI command rest is opcode itself */
415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_OGF(p)  (UINT8)((0xFC00 & (p)) >> 10)
425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_OCF(p)  ( 0x3FF & (p))
435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
45444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji**  Definitions for Link Control Commands
465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Following opcode is used only in command complete event for flow control */
485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_COMMAND_NONE                0x0000
495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_LINK_CONTROL_CMDS group */
515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY                     (0x0001 | HCI_GRP_LINK_CONTROL_CMDS)
525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_CANCEL              (0x0002 | HCI_GRP_LINK_CONTROL_CMDS)
535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PERIODIC_INQUIRY_MODE       (0x0003 | HCI_GRP_LINK_CONTROL_CMDS)
545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXIT_PERIODIC_INQUIRY_MODE  (0x0004 | HCI_GRP_LINK_CONTROL_CMDS)
555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_CONNECTION           (0x0005 | HCI_GRP_LINK_CONTROL_CMDS)
565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISCONNECT                  (0x0006 | HCI_GRP_LINK_CONTROL_CMDS)
575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ADD_SCO_CONNECTION          (0x0007 | HCI_GRP_LINK_CONTROL_CMDS)
585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_CONNECTION_CANCEL    (0x0008 | HCI_GRP_LINK_CONTROL_CMDS)
595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_CONNECTION_REQUEST   (0x0009 | HCI_GRP_LINK_CONTROL_CMDS)
605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REJECT_CONNECTION_REQUEST   (0x000A | HCI_GRP_LINK_CONTROL_CMDS)
615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_REQUEST_REPLY      (0x000B | HCI_GRP_LINK_CONTROL_CMDS)
625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_REQUEST_NEG_REPLY  (0x000C | HCI_GRP_LINK_CONTROL_CMDS)
635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REQUEST_REPLY      (0x000D | HCI_GRP_LINK_CONTROL_CMDS)
645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REQUEST_NEG_REPLY  (0x000E | HCI_GRP_LINK_CONTROL_CMDS)
655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_CONN_PACKET_TYPE     (0x000F | HCI_GRP_LINK_CONTROL_CMDS)
665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTHENTICATION_REQUESTED    (0x0011 | HCI_GRP_LINK_CONTROL_CMDS)
675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_CONN_ENCRYPTION         (0x0013 | HCI_GRP_LINK_CONTROL_CMDS)
685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_CONN_LINK_KEY        (0x0015 | HCI_GRP_LINK_CONTROL_CMDS)
695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MASTER_LINK_KEY             (0x0017 | HCI_GRP_LINK_CONTROL_CMDS)
705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_REQUEST            (0x0019 | HCI_GRP_LINK_CONTROL_CMDS)
715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_REQUEST_CANCEL     (0x001A | HCI_GRP_LINK_CONTROL_CMDS)
725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_FEATURES           (0x001B | HCI_GRP_LINK_CONTROL_CMDS)
735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_EXT_FEATURES       (0x001C | HCI_GRP_LINK_CONTROL_CMDS)
745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_VERSION_INFO       (0x001D | HCI_GRP_LINK_CONTROL_CMDS)
755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_CLOCK_OFFSET       (0x001F | HCI_GRP_LINK_CONTROL_CMDS)
765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LMP_HANDLE             (0x0020 | HCI_GRP_LINK_CONTROL_CMDS)
775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_ESCO_CONNECTION       (0x0028 | HCI_GRP_LINK_CONTROL_CMDS)
785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_ESCO_CONNECTION      (0x0029 | HCI_GRP_LINK_CONTROL_CMDS)
795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REJECT_ESCO_CONNECTION      (0x002A | HCI_GRP_LINK_CONTROL_CMDS)
80899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth#define HCI_IO_CAPABILITY_REQUEST_REPLY (0x002B | HCI_GRP_LINK_CONTROL_CMDS)
815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_CONF_REQUEST_REPLY     (0x002C | HCI_GRP_LINK_CONTROL_CMDS)
825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_CONF_VALUE_NEG_REPLY   (0x002D | HCI_GRP_LINK_CONTROL_CMDS)
835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_REQ_REPLY      (0x002E | HCI_GRP_LINK_CONTROL_CMDS)
845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_REQ_NEG_REPLY  (0x002F | HCI_GRP_LINK_CONTROL_CMDS)
855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REM_OOB_DATA_REQ_REPLY      (0x0030 | HCI_GRP_LINK_CONTROL_CMDS)
865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REM_OOB_DATA_REQ_NEG_REPLY  (0x0033 | HCI_GRP_LINK_CONTROL_CMDS)
875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_REQ_NEG_REPLY        (0x0034 | HCI_GRP_LINK_CONTROL_CMDS)
885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP HCI */
905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_PHYSICAL_LINK        (0x0035 | HCI_GRP_LINK_CONTROL_CMDS)
915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_PHYSICAL_LINK        (0x0036 | HCI_GRP_LINK_CONTROL_CMDS)
925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISCONNECT_PHYSICAL_LINK    (0x0037 | HCI_GRP_LINK_CONTROL_CMDS)
935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_LOGICAL_LINK         (0x0038 | HCI_GRP_LINK_CONTROL_CMDS)
945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_LOGICAL_LINK         (0x0039 | HCI_GRP_LINK_CONTROL_CMDS)
955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISCONNECT_LOGICAL_LINK     (0x003A | HCI_GRP_LINK_CONTROL_CMDS)
965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOGICAL_LINK_CANCEL         (0x003B | HCI_GRP_LINK_CONTROL_CMDS)
975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_MODIFY            (0x003C | HCI_GRP_LINK_CONTROL_CMDS)
985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
99ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_ENH_SETUP_ESCO_CONNECTION   (0x003D | HCI_GRP_LINK_CONTROL_CMDS)
100ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_ENH_ACCEPT_ESCO_CONNECTION  (0x003E | HCI_GRP_LINK_CONTROL_CMDS)
101ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
102ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* ConnectionLess Broadcast */
103ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_TRUNCATED_PAGE              (0x003F | HCI_GRP_LINK_CONTROL_CMDS)
104ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_TRUNCATED_PAGE_CANCEL       (0x0040 | HCI_GRP_LINK_CONTROL_CMDS)
105ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_CLB                     (0x0041 | HCI_GRP_LINK_CONTROL_CMDS)
106ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_RECEIVE_CLB                 (0x0042 | HCI_GRP_LINK_CONTROL_CMDS)
107ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_START_SYNC_TRAIN            (0x0043 | HCI_GRP_LINK_CONTROL_CMDS)
108ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_RECEIVE_SYNC_TRAIN          (0x0044 | HCI_GRP_LINK_CONTROL_CMDS)
109ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_CTRL_CMDS_FIRST        HCI_INQUIRY
111ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_LINK_CTRL_CMDS_LAST         HCI_RECEIVE_SYNC_TRAIN
1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_LINK_POLICY_CMDS */
1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOLD_MODE                   (0x0001 | HCI_GRP_LINK_POLICY_CMDS)
1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_MODE                  (0x0003 | HCI_GRP_LINK_POLICY_CMDS)
1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXIT_SNIFF_MODE             (0x0004 | HCI_GRP_LINK_POLICY_CMDS)
1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PARK_MODE                   (0x0005 | HCI_GRP_LINK_POLICY_CMDS)
1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXIT_PARK_MODE              (0x0006 | HCI_GRP_LINK_POLICY_CMDS)
1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_SETUP                   (0x0007 | HCI_GRP_LINK_POLICY_CMDS)
1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ROLE_DISCOVERY              (0x0009 | HCI_GRP_LINK_POLICY_CMDS)
1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SWITCH_ROLE                 (0x000B | HCI_GRP_LINK_POLICY_CMDS)
1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_POLICY_SETTINGS        (0x000C | HCI_GRP_LINK_POLICY_CMDS)
1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_POLICY_SETTINGS       (0x000D | HCI_GRP_LINK_POLICY_CMDS)
1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_DEF_POLICY_SETTINGS    (0x000E | HCI_GRP_LINK_POLICY_CMDS)
1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_DEF_POLICY_SETTINGS   (0x000F | HCI_GRP_LINK_POLICY_CMDS)
1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPECIFICATION          (0x0010 | HCI_GRP_LINK_POLICY_CMDS)
1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_SUB_RATE              (0x0011 | HCI_GRP_LINK_POLICY_CMDS)
1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_POLICY_CMDS_FIRST      HCI_HOLD_MODE
1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_POLICY_CMDS_LAST       HCI_SNIFF_SUB_RATE
1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_HOST_CONT_BASEBAND_CMDS */
1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_EVENT_MASK              (0x0001 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RESET                       (0x0003 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_EVENT_FILTER            (0x0005 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLUSH                       (0x0008 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PIN_TYPE               (0x0009 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PIN_TYPE              (0x000A | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_NEW_UNIT_KEY         (0x000B | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
141ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_GET_MWS_TRANS_LAYER_CFG     (0x000C | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_STORED_LINK_KEY        (0x000D | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_STORED_LINK_KEY       (0x0011 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DELETE_STORED_LINK_KEY      (0x0012 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_LOCAL_NAME           (0x0013 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_NAME             (0x0014 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CONN_ACCEPT_TOUT       (0x0015 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_CONN_ACCEPT_TOUT      (0x0016 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGE_TOUT              (0x0017 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGE_TOUT             (0x0018 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_SCAN_ENABLE            (0x0019 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_SCAN_ENABLE           (0x001A | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGESCAN_CFG           (0x001B | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGESCAN_CFG          (0x001C | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_INQUIRYSCAN_CFG        (0x001D | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_INQUIRYSCAN_CFG       (0x001E | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_AUTHENTICATION_ENABLE  (0x001F | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_AUTHENTICATION_ENABLE (0x0020 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_ENCRYPTION_MODE        (0x0021 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_ENCRYPTION_MODE       (0x0022 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CLASS_OF_DEVICE        (0x0023 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_CLASS_OF_DEVICE       (0x0024 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_VOICE_SETTINGS         (0x0025 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_VOICE_SETTINGS        (0x0026 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_AUTO_FLUSH_TOUT        (0x0027 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_AUTO_FLUSH_TOUT       (0x0028 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_NUM_BCAST_REXMITS      (0x0029 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_NUM_BCAST_REXMITS     (0x002A | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_HOLD_MODE_ACTIVITY     (0x002B | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_HOLD_MODE_ACTIVITY    (0x002C | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_TRANSMIT_POWER_LEVEL   (0x002D | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_SCO_FLOW_CTRL_ENABLE   (0x002E | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_SCO_FLOW_CTRL_ENABLE  (0x002F | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_HC_TO_HOST_FLOW_CTRL    (0x0031 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_BUFFER_SIZE            (0x0033 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_NUM_PACKETS_DONE       (0x0035 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LINK_SUPER_TOUT        (0x0036 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LINK_SUPER_TOUT       (0x0037 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_NUM_SUPPORTED_IAC      (0x0038 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CURRENT_IAC_LAP        (0x0039 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_CURRENT_IAC_LAP       (0x003A | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGESCAN_PERIOD_MODE   (0x003B | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGESCAN_PERIOD_MODE  (0x003C | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGESCAN_MODE          (0x003D | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGESCAN_MODE         (0x003E | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_AFH_CHANNELS            (0x003F | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_INQSCAN_TYPE           (0x0042 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_INQSCAN_TYPE          (0x0043 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_INQUIRY_MODE           (0x0044 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_INQUIRY_MODE          (0x0045 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGESCAN_TYPE          (0x0046 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGESCAN_TYPE         (0x0047 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_AFH_ASSESSMENT_MODE    (0x0048 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_AFH_ASSESSMENT_MODE   (0x0049 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_EXT_INQ_RESPONSE       (0x0051 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_EXT_INQ_RESPONSE      (0x0052 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REFRESH_ENCRYPTION_KEY      (0x0053 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_SIMPLE_PAIRING_MODE    (0x0055 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_SIMPLE_PAIRING_MODE   (0x0056 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_OOB_DATA         (0x0057 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_INQ_TX_POWER_LEVEL     (0x0058 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_INQ_TX_POWER_LEVEL    (0x0059 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_ERRONEOUS_DATA_RPT     (0x005A | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_ERRONEOUS_DATA_RPT    (0x005B | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENHANCED_FLUSH              (0x005F | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SEND_KEYPRESS_NOTIF         (0x0060 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP HCI */
2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT  (0x0061 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT (0x0062 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_EVENT_MASK_PAGE_2             (0x0063 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCATION_DATA                (0x0064 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LOCATION_DATA               (0x0065 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_FLOW_CONTROL_MODE            (0x0066 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_FLOW_CONTROL_MODE           (0x0067 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_BE_FLUSH_TOUT                (0x0069 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_BE_FLUSH_TOUT               (0x006A | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SHORT_RANGE_MODE                  (0x006B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) /* 802.11 only */
22130e58068c1adaac7c5ccb3aa9cfb045d41d2a10eZach Johnson#define HCI_READ_LE_HOST_SUPPORT              (0x006C | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
22230e58068c1adaac7c5ccb3aa9cfb045d41d2a10eZach Johnson#define HCI_WRITE_LE_HOST_SUPPORT             (0x006D | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
223ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
224ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
225ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* MWS coexistence */
226ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_CHANNEL_PARAMETERS          (0x006E | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
227ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_EXTERNAL_FRAME_CONFIGURATION    (0x006F | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
228ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_SIGNALING                   (0x0070 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
229ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_TRANSPORT_LAYER             (0x0071 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
230ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_SCAN_FREQUENCY_TABLE        (0x0072 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
231ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_PATTERN_CONFIGURATION       (0x0073 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
232ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
233899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth/* Connectionless Broadcast */
2347fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SET_RESERVED_LT_ADDR                (0x0074 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2357fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_DELETE_RESERVED_LT_ADDR             (0x0075 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2367fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_WRITE_CLB_DATA                      (0x0076 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_READ_SYNC_TRAIN_PARAM               (0x0077 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2387fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_WRITE_SYNC_TRAIN_PARAM              (0x0078 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
240444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_READ_SECURE_CONNS_SUPPORT           (0x0079 | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
241444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_WRITE_SECURE_CONNS_SUPPORT          (0x007A | HCI_GRP_HOST_CONT_BASEBAND_CMDS)
2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONT_BASEBAND_CMDS_FIRST    HCI_SET_EVENT_MASK
243ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_CONT_BASEBAND_CMDS_LAST     HCI_READ_SYNC_TRAIN_PARAM
2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_INFORMATIONAL_PARAMS group */
2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_VERSION_INFO     (0x0001 | HCI_GRP_INFORMATIONAL_PARAMS)
2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_SUPPORTED_CMDS   (0x0002 | HCI_GRP_INFORMATIONAL_PARAMS)
2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_FEATURES         (0x0003 | HCI_GRP_INFORMATIONAL_PARAMS)
2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_EXT_FEATURES     (0x0004 | HCI_GRP_INFORMATIONAL_PARAMS)
2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_BUFFER_SIZE            (0x0005 | HCI_GRP_INFORMATIONAL_PARAMS)
2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_COUNTRY_CODE           (0x0007 | HCI_GRP_INFORMATIONAL_PARAMS)
2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_BD_ADDR                (0x0009 | HCI_GRP_INFORMATIONAL_PARAMS)
2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_DATA_BLOCK_SIZE        (0x000A | HCI_GRP_INFORMATIONAL_PARAMS)
255ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_READ_LOCAL_SUPPORTED_CODECS (0x000B | HCI_GRP_INFORMATIONAL_PARAMS)
2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INFORMATIONAL_CMDS_FIRST    HCI_READ_LOCAL_VERSION_INFO
258ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_INFORMATIONAL_CMDS_LAST     HCI_READ_LOCAL_SUPPORTED_CODECS
2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_STATUS_PARAMS group */
2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_FAILED_CONTACT_COUNT   (0x0001 | HCI_GRP_STATUS_PARAMS)
2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RESET_FAILED_CONTACT_COUNT  (0x0002 | HCI_GRP_STATUS_PARAMS)
2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GET_LINK_QUALITY            (0x0003 | HCI_GRP_STATUS_PARAMS)
2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RSSI                   (0x0005 | HCI_GRP_STATUS_PARAMS)
2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_AFH_CH_MAP             (0x0006 | HCI_GRP_STATUS_PARAMS)
2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CLOCK                  (0x0007 | HCI_GRP_STATUS_PARAMS)
2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_ENCR_KEY_SIZE          (0x0008 | HCI_GRP_STATUS_PARAMS)
2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP HCI */
2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_AMP_INFO         (0x0009 | HCI_GRP_STATUS_PARAMS)
2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_AMP_ASSOC        (0x000A | HCI_GRP_STATUS_PARAMS)
2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_REMOTE_AMP_ASSOC      (0x000B | HCI_GRP_STATUS_PARAMS)
2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_STATUS_PARAMS_CMDS_FIRST    HCI_READ_FAILED_CONTACT_COUNT
2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_STATUS_PARAMS_CMDS_LAST     HCI_WRITE_REMOTE_AMP_ASSOC
2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_TESTING_CMDS group */
2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOOPBACK_MODE          (0x0001 | HCI_GRP_TESTING_CMDS)
2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LOOPBACK_MODE         (0x0002 | HCI_GRP_TESTING_CMDS)
2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENABLE_DEV_UNDER_TEST_MODE  (0x0003 | HCI_GRP_TESTING_CMDS)
2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_SIMP_PAIR_DEBUG_MODE  (0x0004 | HCI_GRP_TESTING_CMDS)
2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP HCI */
2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENABLE_AMP_RCVR_REPORTS     (0x0007 | HCI_GRP_TESTING_CMDS)
2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_TEST_END                (0x0008 | HCI_GRP_TESTING_CMDS)
2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_TEST                    (0x0009 | HCI_GRP_TESTING_CMDS)
2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TESTING_CMDS_FIRST          HCI_READ_LOOPBACK_MODE
2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TESTING_CMDS_LAST           HCI_AMP_TEST
2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VENDOR_CMDS_FIRST           0x0001
2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VENDOR_CMDS_LAST            0xFFFF
2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VSC_MULTI_AV_HANDLE         0x0AAA
2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VSC_BURST_MODE_HANDLE       0x0BBB
2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE HCI */
2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GRP_BLE_CMDS                (0x08 << 10)
2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of BLE Controller setup and configuration */
3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_SET_EVENT_MASK          (0x0001 | HCI_GRP_BLE_CMDS)
3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_READ_BUFFER_SIZE        (0x0002 | HCI_GRP_BLE_CMDS)
3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_READ_LOCAL_SPT_FEAT     (0x0003 | HCI_GRP_BLE_CMDS)
3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_WRITE_LOCAL_SPT_FEAT    (0x0004 | HCI_GRP_BLE_CMDS)
3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_WRITE_RANDOM_ADDR       (0x0005 | HCI_GRP_BLE_CMDS)
3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_WRITE_ADV_PARAMS        (0x0006 | HCI_GRP_BLE_CMDS)
3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_READ_ADV_CHNL_TX_POWER  (0x0007 | HCI_GRP_BLE_CMDS)
3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_WRITE_ADV_DATA          (0x0008 | HCI_GRP_BLE_CMDS)
3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_WRITE_SCAN_RSP_DATA     (0x0009 | HCI_GRP_BLE_CMDS)
3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_WRITE_ADV_ENABLE        (0x000A | HCI_GRP_BLE_CMDS)
3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_WRITE_SCAN_PARAMS       (0x000B | HCI_GRP_BLE_CMDS)
3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_WRITE_SCAN_ENABLE       (0x000C | HCI_GRP_BLE_CMDS)
3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_CREATE_LL_CONN          (0x000D | HCI_GRP_BLE_CMDS)
3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_CREATE_CONN_CANCEL      (0x000E | HCI_GRP_BLE_CMDS)
3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_READ_WHITE_LIST_SIZE    (0x000F | HCI_GRP_BLE_CMDS)
3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_CLEAR_WHITE_LIST        (0x0010 | HCI_GRP_BLE_CMDS)
3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_ADD_WHITE_LIST          (0x0011 | HCI_GRP_BLE_CMDS)
3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_REMOVE_WHITE_LIST       (0x0012 | HCI_GRP_BLE_CMDS)
3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_UPD_LL_CONN_PARAMS      (0x0013 | HCI_GRP_BLE_CMDS)
3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_SET_HOST_CHNL_CLASS     (0x0014 | HCI_GRP_BLE_CMDS)
3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_READ_CHNL_MAP           (0x0015 | HCI_GRP_BLE_CMDS)
3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_READ_REMOTE_FEAT        (0x0016 | HCI_GRP_BLE_CMDS)
3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_ENCRYPT                 (0x0017 | HCI_GRP_BLE_CMDS)
3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_RAND                    (0x0018 | HCI_GRP_BLE_CMDS)
3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_START_ENC               (0x0019 | HCI_GRP_BLE_CMDS)
3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_LTK_REQ_REPLY           (0x001A | HCI_GRP_BLE_CMDS)
3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_LTK_REQ_NEG_REPLY       (0x001B | HCI_GRP_BLE_CMDS)
3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_READ_SUPPORTED_STATES   (0x001C | HCI_GRP_BLE_CMDS)
3287fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta                            /*0x001D, 0x001E and 0x001F are reserved*/
329444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_RECEIVER_TEST           (0x001D | HCI_GRP_BLE_CMDS)
330444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_TRANSMITTER_TEST        (0x001E | HCI_GRP_BLE_CMDS)
331444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* BLE TEST COMMANDS */
332444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_TEST_END                (0x001F | HCI_GRP_BLE_CMDS)
3337fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_BLE_RC_PARAM_REQ_REPLY      (0x0020 | HCI_GRP_BLE_CMDS)
3347fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_BLE_RC_PARAM_REQ_NEG_REPLY  (0x0021 | HCI_GRP_BLE_CMDS)
3357fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
336636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera#define HCI_BLE_SET_DATA_LENGTH             (0x0022 | HCI_GRP_BLE_CMDS)
337636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera#define HCI_BLE_READ_DEFAULT_DATA_LENGTH    (0x0023 | HCI_GRP_BLE_CMDS)
338636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera#define HCI_BLE_WRITE_DEFAULT_DATA_LENGTH   (0x0024 | HCI_GRP_BLE_CMDS)
339636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera
340444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_ADD_DEV_RESOLVING_LIST      (0x0027 | HCI_GRP_BLE_CMDS)
341444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_RM_DEV_RESOLVING_LIST       (0x0028 | HCI_GRP_BLE_CMDS)
342444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_CLEAR_RESOLVING_LIST        (0x0029 | HCI_GRP_BLE_CMDS)
343444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_READ_RESOLVING_LIST_SIZE    (0x002A | HCI_GRP_BLE_CMDS)
344444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_READ_RESOLVABLE_ADDR_PEER   (0x002B | HCI_GRP_BLE_CMDS)
345444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_READ_RESOLVABLE_ADDR_LOCAL  (0x002C | HCI_GRP_BLE_CMDS)
346444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_SET_ADDR_RESOLUTION_ENABLE  (0x002D | HCI_GRP_BLE_CMDS)
347444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_SET_RAND_PRIV_ADDR_TIMOUT   (0x002E | HCI_GRP_BLE_CMDS)
3487fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
349a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* LE Get Vendor Capabilities Command OCF */
350a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#define HCI_BLE_VENDOR_CAP_OCF    (0x0153 | HCI_GRP_VENDOR_SPECIFIC)
351a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
352a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* Multi adv OCF */
353a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#define HCI_BLE_MULTI_ADV_OCF     (0x0154 | HCI_GRP_VENDOR_SPECIFIC)
354a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
355c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* Batch scan OCF */
356c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji#define HCI_BLE_BATCH_SCAN_OCF    (0x0156 | HCI_GRP_VENDOR_SPECIFIC)
357c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
3581a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* ADV filter OCF */
3591a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji#define HCI_BLE_ADV_FILTER_OCF    (0x0157 | HCI_GRP_VENDOR_SPECIFIC)
3601a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji
361c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* Tracking OCF */
362c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji#define HCI_BLE_TRACK_ADV_OCF     (0x0158 | HCI_GRP_VENDOR_SPECIFIC)
363c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
364e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji/* Energy info OCF */
365e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji#define HCI_BLE_ENERGY_INFO_OCF   (0x0159 | HCI_GRP_VENDOR_SPECIFIC)
366e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji
367979e3421c8111a56ebfcf176f6383df58eed52eaAndre Eisenbach/* Extended BLE Scan parameters OCF */
368979e3421c8111a56ebfcf176f6383df58eed52eaAndre Eisenbach#define HCI_BLE_EXTENDED_SCAN_PARAMS_OCF  (0x0160 | HCI_GRP_VENDOR_SPECIFIC)
369979e3421c8111a56ebfcf176f6383df58eed52eaAndre Eisenbach
370a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* subcode for multi adv feature */
371a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#define BTM_BLE_MULTI_ADV_SET_PARAM                     0x01
372a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#define BTM_BLE_MULTI_ADV_WRITE_ADV_DATA                0x02
373a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#define BTM_BLE_MULTI_ADV_WRITE_SCAN_RSP_DATA           0x03
374a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#define BTM_BLE_MULTI_ADV_SET_RANDOM_ADDR               0x04
375a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#define BTM_BLE_MULTI_ADV_ENB                           0x05
376a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
377a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* multi adv VSE subcode */
378a6ce7751d84218c193eb90d390aef23217b1737eWei Wang#define HCI_VSE_SUBCODE_BLE_MULTI_ADV_ST_CHG       0x55 /* multi adv instance state change */
379a6ce7751d84218c193eb90d390aef23217b1737eWei Wang
380c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* subcode for batch scan feature */
381c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji#define BTM_BLE_BATCH_SCAN_ENB_DISAB_CUST_FEATURE      0x01
382c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji#define BTM_BLE_BATCH_SCAN_SET_STORAGE_PARAM           0x02
383c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji#define BTM_BLE_BATCH_SCAN_SET_PARAMS                  0x03
384c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji#define BTM_BLE_BATCH_SCAN_READ_RESULTS                0x04
385c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
386c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* batch scan VSE subcode */
387c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji#define HCI_VSE_SUBCODE_BLE_THRESHOLD_SUB_EVT      0x54 /* Threshold event */
388c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
389c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* tracking sub event */
390c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji#define HCI_VSE_SUBCODE_BLE_TRACKING_SUB_EVT       0x56 /* Tracking event */
391c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji
3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* LE supported states definition */
3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_ADV_STATE          0x00000001
3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_SCAN_STATE         0x00000002
3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_INIT_STATE         0x00000004
3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_CONN_SL_STATE      0x00000008
3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_ADV_SCAN_STATE     0x00000010
3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_ADV_INIT_STATE     0x00000020
3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_ADV_MA_STATE       0x00000040
4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_ADV_SL_STATE       0x00000080
4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_SCAN_INIT_STATE    0x00000100
4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_SCAN_MA_STATE      0x00000200
4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_SCAN_SL_STATE      0x00000400
4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LE_INIT_MA_STATE      0x00000800
4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
4067fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* LE Supported States */
4077fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Non Connectable Adv state is supported. 0x0000000000000001 */
4087fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASK          0x01
4097fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_OFF           0
4107fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_NON_CONN_ADV_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_MASK)
4117fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4127fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Scanneable Connectable Adv state  is supported. 0x0000000000000002 */
4137fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_MASK          0x02
4147fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATESSCAN_ADV_OFF           0
4157fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_SCAN_ADV_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATESSCAN_ADV_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_MASK)
4167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4177fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connectable Adv state is supported. 0x0000000000000004 */
4187fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_MASK          0x04
4197fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_OFF           0
4207fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_CONN_ADV_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_CONN_ADV_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_MASK)
4217fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4227fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Hi duty Cycle Directed Adv state is supported. 0x0000000000000008 */
4237fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASK          0x08
4247fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_OFF           0
4257fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_HI_DUTY_DIR_ADV_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_OFF] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASK)
4267fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4277fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Passive Scan state is supported. 0x0000000000000010 */
4287fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_PASS_SCAN_MASK          0x10
4297fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_PASS_SCAN_OFF           0
4307fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_PASS_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_MASK)
4317fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4327fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Active Scan state is supported. 0x0000000000000020 */
4337fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASK          0x20
4347fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_OFF           0
4357fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_ACTIVE_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASK)
4367fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Initiating state is supported. 0x0000000000000040 (or connection state in master role is also supported) */
4387fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_INIT_MASK          0x40
4397fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_INIT_OFF           0
4407fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_INIT_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_INIT_OFF] & HCI_SUPP_LE_STATES_INIT_MASK)
4417fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4427fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*connection state in slave  role is also supported. 0x0000000000000080 */
4437fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SLAVE_MASK          0x80
4447fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SLAVE_OFF           0
4457fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_SLAVE_OFF] & HCI_SUPP_LE_STATES_SLAVE_MASK)
4467fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4477fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Non Connectable Adv state and Passive Scanning State combination is supported. 0x0000000000000100 */
4487fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_MASK          0x01
4497fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_OFF           1
4507fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_NON_CONN_ADV_PASS_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_MASK)
4517fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4527fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Scannable Adv state and Passive Scanning State combination is supported. 0x0000000000000200 */
4537fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_MASK          0x02
4547fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_OFF           1
4557fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_SCAN_ADV_PASS_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_MASK)
4567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4577fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Connectable Adv state and Passive Scanning State combination is supported. 0x0000000000000400 */
4587fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_MASK          0x04
4597fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_OFF           1
4607fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_CONN_ADV_PASS_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_MASK)
4617fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4627fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*High Duty Cycl Directed ADv and Passive Scanning State combination is supported. 0x0000000000000800 */
4637fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_MASK          0x08
4647fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_OFF           1
4657fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_MASK] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_OFF)
4667fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4677fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Non Connectable Adv state and Passive Scanning State combination is supported. 0x0000000000001000 */
4687fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_MASK          0x10
4697fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_OFF           1
4707fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_MASK)
4717fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4727fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Scannable Adv state and Active Scanning State combination is supported. 0x0000000000002000 */
4737fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_MASK          0x20
4747fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_OFF           1
4757fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_SCAN_ADV_ACTIVE_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_MASK)
4767fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4777fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Connectable Adv state and Active Scanning State combination is supported. 0x0000000000004000 */
4787fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_MASK          0x40
4797fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_OFF           1
4807fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_CONN_ADV_ACTIVE_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_MASK)
4817fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4827fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*High Duty Cycl Directed ADv and ACtive Scanning State combination is supported. 0x0000000000008000 */
4837fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_MASK          0x80
4847fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_OFF           1
4857fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_MASK] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_OFF)
4867fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4877fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Non-Connectable Adv state and Initiating State combination is supported. 0x0000000000010000 */
4887fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_INIT_MASK          0x01
4897fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_INIT_OFF           2
4907fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_NON_CONN_INIT_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_NON_CONN_INIT_OFF] & HCI_SUPP_LE_STATES_NON_CONN_INIT_MASK)
4917fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4927fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Scannable Adv state and Initiating State combination is supported. 0x0000000000020000 */
4937fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_INIT_MASK          0x02
4947fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_INIT_OFF           2
4957fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_SCAN_ADV_INIT_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_INIT_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_INIT_MASK)
4967fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
4977fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Non-Connectable Adv state and Master Role combination is supported. 0x0000000000040000 */
4987fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_MASK          0x04
4997fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_OFF           2
5007fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_NON_CONN_ADV_MASTER_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_MASK)
5017fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5027fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Scannable Adv state and Master Role combination is supported. 0x0000000000040000 */
5037fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_MASK          0x08
5047fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_OFF           2
5057fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_SCAN_ADV_MASTER_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_MASK)
5067fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5077fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Non-Connectable Adv and Slave Role combination is supported. 0x000000000100000 */
5087fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_MASK          0x10
5097fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_OFF           2
5107fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_NON_CONN_ADV_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_MASK)
5117fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5127fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Scannable Adv and Slave Role combination is supported. 0x000000000200000 */
5137fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_MASK          0x20
5147fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_OFF           2
5157fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_SCAN_ADV_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_MASK)
5167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5177fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Passive Scan and Initiating State combination is supported. 0x000000000400000 */
5187fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_PASS_SCAN_INIT_MASK          0x40
5197fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_PASS_SCAN_INIT_OFF           2
5207fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_PASS_SCAN_INIT_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_INIT_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_INIT_MASK)
5217fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5227fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Active Scan and Initiating State combination is supported. 0x000000000800000 */
5237fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_MASK          0x80
5247fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_OFF           2
5257fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_ACTIVE_SCAN_INIT_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_OFF] & HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_MASK)
5267fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5277fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Passive Scan and Master Role combination is supported. 0x000000001000000 */
5287fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_MASK          0x01
5297fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_OFF           3
5307fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_PASS_SCAN_MASTER_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_MASK)
5317fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5327fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Active Scan and Master Role combination is supported. 0x000000002000000 */
5337fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_MASK          0x02
5347fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_OFF           3
5357fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_ACTIVE_SCAN_MASTER_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_OFF] & HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_MASK)
5367fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Passive Scan and Slave Role combination is supported. 0x000000004000000 */
5387fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_MASK          0x04
5397fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_OFF           3
5407fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_PASS_SCAN_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_MASK)
5417fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5427fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Active Scan and Slave Role combination is supported. 0x000000008000000 */
5437fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_MASK          0x08
5447fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_OFF           3
5457fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_ACTIVE_SCAN_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_OFF] & HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_MASK)
5467fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5477fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Link Layer Topology Added States Combo */
5487fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/*Initiating State and Master Role combination supported.
5497fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta  Master Role and Master Role combination is also supported. 0x0000000010000000 */
5507fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_INIT_MASTER_MASK          0x10
5517fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_INIT_MASTER_OFF           3
5527fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_INIT_MASTER_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_INIT_MASTER_OFF] & HCI_SUPP_LE_STATES_INIT_MASTER_MASK)
5537fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
554444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*Low Duty Cycle Directed Advertising State . 0x0000000020000000 */
555444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASK          0x20
556444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_OFF           3
557444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_STATES_LOW_DUTY_DIR_ADV_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_LOW_DUTY_DIR_ADV_OFF] & HCI_SUPP_LE_STATES_LOW_DUTY_DIR_ADV_MASK)
558444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
559444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*Low Duty Cycle Directed Advertising State and Passive scan combination. 0x0000000040000000 */
560444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_MASK          0x40
561444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_OFF           3
562444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_MASK)
563444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
564444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/*Low Duty Cycle Directed Advertising State and Active scan combination . 0x0000000080000000 */
565444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_MASK          0x80
566444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_OFF           3
567444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_MASK)
568444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
5697fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connectable Advertising State and Initiating State combination supported. 0x0000000100000000 */
5707fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_INIT_MASK          0x01
5717fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_INIT_OFF           4
5727fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_CONN_ADV_INIT_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_CONN_ADV_INIT_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_INIT_MASK)
5737fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5747fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* High Duty Cycle Directed Advertising State and Initiating State combination supported. */
5757fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_MASK          0x02
5767fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_OFF           4
5777fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_HI_DUTY_DIR_ADV_INIT_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_OFF] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_MASK)
5787fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5797fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Low Duty Cycle Directed Advertising State and Initiating State combination supported.*/
5807fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_MASK          0x04
5817fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_OFF           4
5827fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_LO_DUTY_DIR_ADV_INIT_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_MASK)
5837fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5847fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connectable Advertising State and Master Role combination supported.*/
5857fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_MASTER_MASK          0x08
5867fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_MASTER_OFF           4
5877fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_CONN_ADV_MASTER_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_CONN_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_MASTER_MASK)
5887fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5897fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* High Duty Cycle Directed Advertising State and Master Role combination supported.*/
5907fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_MASK          0x10
5917fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_OFF           4
5927fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_HI_DUTY_DIR_ADV_MASTER_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_MASK)
5937fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5947fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Low Duty Cycle Directed Advertising State and Master Role combination supported.*/
5957fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_MASK          0x20
5967fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_OFF           4
5977fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_LO_DUTY_DIR_ADV_MASTER_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_MASK)
5987fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
5997fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connectable Advertising State and Slave Role combination supported. */
6007fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_MASK          0x40
6017fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_OFF           4
6027fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_CONN_ADV_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_MASK)
6037fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
6047fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* High Duty Cycle Directed Advertising State and slave Role combination supported.*/
6057fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_MASK          0x80
6067fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_OFF           4
6077fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_MASK)
6087fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
6097fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Low Duty Cycle Directed Advertising State and slave Role combination supported.*/
6107fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_MASK          0x01
6117fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_OFF           5
6127fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_OFF] & HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_MASK)
6137fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
6147fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Initiating State and Slave Role combination supported.
6157fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta   Master Role and Slave Role combination also supported.
6167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta */
6177fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_MASK          0x02
6187fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_OFF           5
6197fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_STATES_INIT_MASTER_SLAVE_SUPPORTED(x)      ((x)[HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_OFF] & HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_MASK)
6207fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Definitions for HCI Events
6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_COMP_EVT                0x01
6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_RESULT_EVT              0x02
6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONNECTION_COMP_EVT             0x03
6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONNECTION_REQUEST_EVT          0x04
6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISCONNECTION_COMP_EVT          0x05
6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTHENTICATION_COMP_EVT         0x06
6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_REQUEST_COMP_EVT       0x07
6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPTION_CHANGE_EVT           0x08
6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_CONN_LINK_KEY_EVT        0x09
6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MASTER_LINK_KEY_COMP_EVT        0x0A
6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_FEATURES_COMP_EVT      0x0B
6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_VERSION_COMP_EVT       0x0C
6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_SETUP_COMP_EVT              0x0D
6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_COMMAND_COMPLETE_EVT            0x0E
6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_COMMAND_STATUS_EVT              0x0F
6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HARDWARE_ERROR_EVT              0x10
6405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLUSH_OCCURED_EVT               0x11
6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ROLE_CHANGE_EVT                 0x12
6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_NUM_COMPL_DATA_PKTS_EVT         0x13
6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MODE_CHANGE_EVT                 0x14
6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RETURN_LINK_KEYS_EVT            0x15
6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REQUEST_EVT            0x16
6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_REQUEST_EVT            0x17
6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_NOTIFICATION_EVT       0x18
6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOOPBACK_COMMAND_EVT            0x19
6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_BUF_OVERFLOW_EVT           0x1A
6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_SLOTS_CHANGED_EVT           0x1B
6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CLOCK_OFF_COMP_EVT         0x1C
6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONN_PKT_TYPE_CHANGE_EVT        0x1D
6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_VIOLATION_EVT               0x1E
6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_MODE_CHANGE_EVT       0x1F
6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_REP_MODE_CHNG_EVT     0x20
6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPECIFICATION_COMP_EVT     0x21
6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_RSSI_RESULT_EVT         0x22
6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_EXT_FEATURES_COMP_EVT  0x23
6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_CONNECTION_COMP_EVT        0x2C
6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_CONNECTION_CHANGED_EVT     0x2D
6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_SUB_RATE_EVT              0x2E
6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXTENDED_INQUIRY_RESULT_EVT     0x2F
6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPTION_KEY_REFRESH_COMP_EVT 0x30
6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAPABILITY_REQUEST_EVT       0x31
6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAPABILITY_RESPONSE_EVT      0x32
6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_CONFIRMATION_REQUEST_EVT   0x33
6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_REQUEST_EVT        0x34
6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REMOTE_OOB_DATA_REQUEST_EVT     0x35
6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SIMPLE_PAIRING_COMPLETE_EVT     0x36
6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_SUPER_TOUT_CHANGED_EVT     0x38
6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENHANCED_FLUSH_COMPLETE_EVT     0x39
6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_NOTIFY_EVT         0x3B
6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_KEYPRESS_NOTIFY_EVT             0x3C
6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_HOST_SUP_FEAT_NOTIFY_EVT    0x3D
6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*#define HCI_GENERIC_AMP_LINK_KEY_NOTIF_EVT  0x3E Removed from spec */
6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PHYSICAL_LINK_COMP_EVT          0x40
6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANNEL_SELECTED_EVT            0x41
6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISC_PHYSICAL_LINK_COMP_EVT     0x42
6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PHY_LINK_LOSS_EARLY_WARNING_EVT 0x43
6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PHY_LINK_RECOVERY_EVT           0x44
6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOGICAL_LINK_COMP_EVT           0x45
6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISC_LOGICAL_LINK_COMP_EVT      0x46
6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_MODIFY_COMP_EVT       0x47
6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_NUM_COMPL_DATA_BLOCKS_EVT       0x48
6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SHORT_RANGE_MODE_COMPLETE_EVT   0x4C
6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_STATUS_CHANGE_EVT           0x4D
6887fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SET_TRIGGERED_CLOCK_CAPTURE_EVT 0x4E
6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ULP HCI Event */
691444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_EVENT                       0x3e
6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ULP Event sub code */
6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_CONN_COMPLETE_EVT           0x01
6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_ADV_PKT_RPT_EVT             0x02
6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_LL_CONN_PARAM_UPD_EVT       0x03
6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_READ_REMOTE_FEAT_CMPL_EVT   0x04
6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLE_LTK_REQ_EVT                 0x05
6987fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_BLE_RC_PARAM_REQ_EVT            0x06
699444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_DATA_LENGTH_CHANGE_EVT      0x07
700444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_ENHANCED_CONN_COMPLETE_EVT  0x0a
701444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_DIRECT_ADV_EVT              0x0b
7027fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
7037fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Definitions for LE Channel Map */
7047fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_BLE_CHNL_MAP_SIZE               5
7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VENDOR_SPECIFIC_EVT         0xFF  /* Vendor specific events */
7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_NAP_TRACE_EVT               0xFF  /* was define 0xFE, 0xFD, change to 0xFF
7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                 because conflict w/ TCI_EVT and per
7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                                 specification compliant */
7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Defentions for HCI Error Codes that are past in the events
7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUCCESS                                     0x00
7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PENDING                                     0x00
7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_ILLEGAL_COMMAND                         0x01
7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_NO_CONNECTION                           0x02
7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_HW_FAILURE                              0x03
7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_PAGE_TIMEOUT                            0x04
7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_AUTH_FAILURE                            0x05
7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_KEY_MISSING                             0x06
7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_MEMORY_FULL                             0x07
7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_CONNECTION_TOUT                         0x08
7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_MAX_NUM_OF_CONNECTIONS                  0x09
7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_MAX_NUM_OF_SCOS                         0x0A
7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_CONNECTION_EXISTS                       0x0B
7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_COMMAND_DISALLOWED                      0x0C
7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_HOST_REJECT_RESOURCES                   0x0D
7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_HOST_REJECT_SECURITY                    0x0E
7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_HOST_REJECT_DEVICE                      0x0F
7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_HOST_TIMEOUT                            0x10
7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNSUPPORTED_VALUE                       0x11
7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_ILLEGAL_PARAMETER_FMT                   0x12
7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_PEER_USER                               0x13
7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_PEER_LOW_RESOURCES                      0x14
7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_PEER_POWER_OFF                          0x15
7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_CONN_CAUSE_LOCAL_HOST                   0x16
7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_REPEATED_ATTEMPTS                       0x17
7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_PAIRING_NOT_ALLOWED                     0x18
7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNKNOWN_LMP_PDU                         0x19
7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNSUPPORTED_REM_FEATURE                 0x1A
7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_SCO_OFFSET_REJECTED                     0x1B
7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_SCO_INTERVAL_REJECTED                   0x1C
7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_SCO_AIR_MODE                            0x1D
7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_INVALID_LMP_PARAM                       0x1E
7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNSPECIFIED                             0x1F
7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNSUPPORTED_LMP_FEATURE                 0x20
7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_ROLE_CHANGE_NOT_ALLOWED                 0x21
7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_LMP_RESPONSE_TIMEOUT                    0x22
7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_LMP_ERR_TRANS_COLLISION                 0x23
7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_LMP_PDU_NOT_ALLOWED                     0x24
7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_ENCRY_MODE_NOT_ACCEPTABLE               0x25
7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNIT_KEY_USED                           0x26
7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_QOS_NOT_SUPPORTED                       0x27
7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_INSTANT_PASSED                          0x28
7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED     0x29
7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_DIFF_TRANSACTION_COLLISION              0x2A
7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNDEFINED_0x2B                          0x2B
7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_QOS_UNACCEPTABLE_PARAM                  0x2C
7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_QOS_REJECTED                            0x2D
7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_CHAN_CLASSIF_NOT_SUPPORTED              0x2E
7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_INSUFFCIENT_SECURITY                    0x2F
7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_PARAM_OUT_OF_RANGE                      0x30
7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNDEFINED_0x31                          0x31
7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_ROLE_SWITCH_PENDING                     0x32
7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNDEFINED_0x33                          0x33
7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_RESERVED_SLOT_VIOLATION                 0x34
7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_ROLE_SWITCH_FAILED                      0x35
7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_INQ_RSP_DATA_TOO_LARGE                  0x36
7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_SIMPLE_PAIRING_NOT_SUPPORTED            0x37
7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_HOST_BUSY_PAIRING                       0x38
7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_REJ_NO_SUITABLE_CHANNEL                 0x39
7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_CONTROLLER_BUSY                         0x3A
7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_UNACCEPT_CONN_INTERVAL                  0x3B
7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_DIRECTED_ADVERTISING_TIMEOUT            0x3C
7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_CONN_TOUT_DUE_TO_MIC_FAILURE            0x3D
7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_CONN_FAILED_ESTABLISHMENT               0x3E
7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERR_MAC_CONNECTION_FAILED                   0x3F
7795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
780ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* ConnectionLess Broadcast errors */
781ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_ERR_LT_ADDR_ALREADY_IN_USE                  0x40
782ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_ERR_LT_ADDR_NOT_ALLOCATED                   0x41
783ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_ERR_CLB_NOT_ENABLED                         0x42
784ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_ERR_CLB_DATA_TOO_BIG                        0x43
785ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
786ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_ERR_MAX_ERR                                 0x43
7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HINT_TO_RECREATE_AMP_PHYS_LINK              0xFF
7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Definitions for HCI enable event
7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_COMPLETE_EV(p)          (*((UINT32 *)(p)) & 0x00000001)
7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_RESULT_EV(p)            (*((UINT32 *)(p)) & 0x00000002)
7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONNECTION_COMPLETE_EV(p)       (*((UINT32 *)(p)) & 0x00000004)
7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONNECTION_REQUEST_EV(p)        (*((UINT32 *)(p)) & 0x00000008)
7975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISCONNECTION_COMPLETE_EV(p)    (*((UINT32 *)(p)) & 0x00000010)
7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTHENTICATION_COMPLETE_EV(p)   (*((UINT32 *)(p)) & 0x00000020)
7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_REQUEST_COMPL_EV(p)    (*((UINT32 *)(p)) & 0x00000040)
8005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_CONN_ENCRPT_ENABLE_EV(p) (*((UINT32 *)(p)) & 0x00000080)
8015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_CONN_LINK_KEY_EV(p)      (*((UINT32 *)(p)) & 0x00000100)
8025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MASTER_LINK_KEY_COMPLETE_EV(p)  (*((UINT32 *)(p)) & 0x00000200)
8035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_FEATURES_COMPL_EV(p)   (*((UINT32 *)(p)) & 0x00000400)
8045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RMT_VERSION_COMPL_EV(p)    (*((UINT32 *)(p)) & 0x00000800)
8055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_SETUP_COMPLETE_EV(p)        (*((UINT32 *)(p)) & 0x00001000)
8065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_COMMAND_COMPLETE_EV(p)          (*((UINT32 *)(p)) & 0x00002000)
8075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_COMMAND_STATUS_EV(p)            (*((UINT32 *)(p)) & 0x00004000)
8085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HARDWARE_ERROR_EV(p)            (*((UINT32 *)(p)) & 0x00008000)
8095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLASH_OCCURED_EV(p)             (*((UINT32 *)(p)) & 0x00010000)
8105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ROLE_CHANGE_EV(p)               (*((UINT32 *)(p)) & 0x00020000)
8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_NUM_COMPLETED_PKTS_EV(p)        (*((UINT32 *)(p)) & 0x00040000)
8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MODE_CHANGE_EV(p)               (*((UINT32 *)(p)) & 0x00080000)
8135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RETURN_LINK_KEYS_EV(p)          (*((UINT32 *)(p)) & 0x00100000)
8145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REQUEST_EV(p)          (*((UINT32 *)(p)) & 0x00200000)
8155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_REQUEST_EV(p)          (*((UINT32 *)(p)) & 0x00400000)
8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_NOTIFICATION_EV(p)     (*((UINT32 *)(p)) & 0x00800000)
8175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOOPBACK_COMMAND_EV(p)          (*((UINT32 *)(p)) & 0x01000000)
8185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_BUF_OVERFLOW_EV(p)         (*((UINT32 *)(p)) & 0x02000000)
8195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_SLOTS_CHANGE_EV(p)          (*((UINT32 *)(p)) & 0x04000000)
8205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CLOCK_OFFSET_COMP_EV(p)    (*((UINT32 *)(p)) & 0x08000000)
8215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONN_PKT_TYPE_CHANGED_EV(p)     (*((UINT32 *)(p)) & 0x10000000)
8225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_VIOLATION_EV(p)             (*((UINT32 *)(p)) & 0x20000000)
8235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_MODE_CHANGED_EV(p)    (*((UINT32 *)(p)) & 0x40000000)
8245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_REP_MODE_CHNG_EV(p)   (*((UINT32 *)(p)) & 0x80000000)
8255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the default event mask for 2.1+EDR (Lisbon) does not include Lisbon events */
8275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_EVENT_MASK_0            0xFFFFFFFF
8285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_EVENT_MASK_1            0x00001FFF
8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the event mask for 2.0 + EDR and later (includes Lisbon events) */
8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LISBON_EVENT_MASK_0             0xFFFFFFFF
8325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LISBON_EVENT_MASK_1             0x1DBFFFFF
8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LISBON_EVENT_MASK               "\x0D\xBF\xFF\xFF\xFF\xFF\xFF\xFF"
8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LISBON_EVENT_MASK_EXT           "\x1D\xBF\xFF\xFF\xFF\xFF\xFF\xFF"
8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DUMO_EVENT_MASK_EXT             "\x3D\xBF\xFF\xFF\xFF\xFF\xFF\xFF"
8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*  0x00001FFF FFFFFFFF Default - no Lisbon events
8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00000800 00000000 Synchronous Connection Complete Event
8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00001000 00000000 Synchronous Connection Changed Event
8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00002000 00000000 Sniff Subrate Event
8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00004000 00000000 Extended Inquiry Result Event
8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00008000 00000000 Encryption Key Refresh Complete Event
8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00010000 00000000 IO Capability Request Event
8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00020000 00000000 IO Capability Response Event
8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00040000 00000000 User Confirmation Request Event
8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00080000 00000000 User Passkey Request Event
8465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00100000 00000000 Remote OOB Data Request Event
8475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00200000 00000000 Simple Pairing Complete Event
8485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00400000 00000000 Generic AMP Link Key Notification Event
8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x00800000 00000000 Link Supervision Timeout Changed Event
8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x01000000 00000000 Enhanced Flush Complete Event
8515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x04000000 00000000 User Passkey Notification Event
8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x08000000 00000000 Keypress Notification Event
8535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x10000000 00000000 Remote Host Supported Features Notification Event
8545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x20000000 00000000 LE Meta Event
8555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project */
8565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the event mask for AMP controllers */
8595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_EVENT_MASK_3_0               "\x00\x00\x00\x00\x00\x00\x3F\xFF"
8605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*  0x0000000000000000 No events specified (default)
8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000001 Physical Link Complete Event
8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000002 Channel Selected Event
8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000004 Disconnection Physical Link Event
8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000008 Physical Link Loss Early Warning Event
8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000010 Physical Link Recovery Event
8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000020 Logical Link Complete Event
8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000040 Disconnection Logical Link Complete Event
8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000080 Flow Spec Modify Complete Event
8705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000100 Number of Completed Data Blocks Event
8715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000200 AMP Start Test Event
8725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000400 AMP Test End Event
8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000000800 AMP Receiver Report Event
8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000001000 Short Range Mode Change Complete Event
8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    0x0000000000002000 AMP Status Change Event
8765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
8783aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* the event mask page 2 (CLB + CSA4) for BR/EDR controller */
8793aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_PAGE_2_EVENT_MASK                  "\x00\x00\x00\x00\x00\x7F\xC0\x00"
8803aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*  0x0000000000004000 Triggered Clock Capture Event
8813aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    0x0000000000008000 Sync Train Complete Event
8823aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    0x0000000000010000 Sync Train Received Event
8833aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    0x0000000000020000 Connectionless Broadcast Receive Event
8843aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    0x0000000000040000 Connectionless Broadcast Timeout Event
8853aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    0x0000000000080000 Truncated Page Complete Event
8863aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    0x0000000000100000 Salve Page Response Timeout Event
8873aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    0x0000000000200000 Connectionless Broadcast Channel Map Change Event
8883aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach    0x0000000000400000 Inquiry Response Notification Event
8893aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*/
890444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#if BLE_PRIVACY_SPT == TRUE
891444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* BLE event mask */
892444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_EVENT_MASK_DEF               "\x00\x00\x00\x00\x00\x00\x07\xff"
893444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#else
894444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_BLE_EVENT_MASK_DEF              "\x00\x00\x00\x00\x00\x00\x00\x7f"
895444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#endif
8965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
8975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Definitions for packet type masks (BT1.2 and BT2.0 definitions)
8985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
8995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_NO_2_DH1         0x0002
9005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_NO_3_DH1         0x0004
9015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_DM1              0x0008
9025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_DH1              0x0010
9035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_HV1              0x0020
9045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_HV2              0x0040
9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_HV3              0x0080
9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_NO_2_DH3         0x0100
9075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_NO_3_DH3         0x0200
9085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_DM3              0x0400
9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_DH3              0x0800
9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_NO_2_DH5         0x1000
9115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_NO_3_DH5         0x2000
9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_DM5              0x4000
9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKT_TYPES_MASK_DH5              0x8000
9145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Packet type should be one of valid but at least one should be specified */
9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VALID_SCO_PKT_TYPE(t) (((((t) & ~(HCI_PKT_TYPES_MASK_HV1       \
9175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_HV2       \
9185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_HV3)) == 0)) \
9195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    && ((t) != 0))
9205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Packet type should not be invalid and at least one should be specified */
9265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VALID_ACL_PKT_TYPE(t) (((((t) & ~(HCI_PKT_TYPES_MASK_DM1        \
9275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_DH1        \
9285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_DM3        \
9295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_DH3        \
9305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_DM5        \
9315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_DH5        \
9325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_NO_2_DH1   \
9335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_NO_3_DH1   \
9345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_NO_2_DH3   \
9355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_NO_3_DH3   \
9365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_NO_2_DH5   \
9375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |  HCI_PKT_TYPES_MASK_NO_3_DH5  )) == 0)) \
9385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    && (((t) &  (HCI_PKT_TYPES_MASK_DM1        \
9395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              |  HCI_PKT_TYPES_MASK_DH1        \
9405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              |  HCI_PKT_TYPES_MASK_DM3        \
9415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              |  HCI_PKT_TYPES_MASK_DH3        \
9425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              |  HCI_PKT_TYPES_MASK_DM5        \
9435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                              |  HCI_PKT_TYPES_MASK_DH5)) != 0))
9445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
9465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Definitions for eSCO packet type masks (BT1.2 and BT2.0 definitions)
9475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
9485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_HV1         0x0001
9495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_HV2         0x0002
9505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_HV3         0x0004
9515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_EV3         0x0008
9525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_EV4         0x0010
9535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_EV5         0x0020
9545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_NO_2_EV3    0x0040
9555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_NO_3_EV3    0x0080
9565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_NO_2_EV5    0x0100
9575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_PKT_TYPES_MASK_NO_3_EV5    0x0200
9585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Packet type should be one of valid but at least one should be specified for 1.2 */
9605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VALID_ESCO_PKT_TYPE(t) (((((t) & ~(HCI_ESCO_PKT_TYPES_MASK_EV3       \
9615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |   HCI_ESCO_PKT_TYPES_MASK_EV4       \
9625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |   HCI_ESCO_PKT_TYPES_MASK_EV5)) == 0)) \
9635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    && ((t) != 0))/* Packet type should be one of valid but at least one should be specified */
9645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VALID_ESCO_SCOPKT_TYPE(t) (((((t) & ~(HCI_ESCO_PKT_TYPES_MASK_HV1       \
9665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |      HCI_ESCO_PKT_TYPES_MASK_HV2       \
9675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |      HCI_ESCO_PKT_TYPES_MASK_HV3)) == 0)) \
9685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    && ((t) != 0))
9695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VALID_SCO_ALL_PKT_TYPE(t) (((((t) & ~(HCI_ESCO_PKT_TYPES_MASK_HV1       \
9715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |      HCI_ESCO_PKT_TYPES_MASK_HV2       \
9725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |      HCI_ESCO_PKT_TYPES_MASK_HV3       \
9735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |      HCI_ESCO_PKT_TYPES_MASK_EV3       \
9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |      HCI_ESCO_PKT_TYPES_MASK_EV4       \
9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                           |      HCI_ESCO_PKT_TYPES_MASK_EV5)) == 0)) \
9765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                    && ((t) != 0))
9775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
9795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Define parameters to allow role switch during create connection
9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CR_CONN_NOT_ALLOW_SWITCH    0x00
9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CR_CONN_ALLOW_SWITCH        0x01
9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Hold Mode command destination
9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HOLD_MODE_DEST_LOCAL_DEVICE     0x00
9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HOLD_MODE_DEST_RMT_DEVICE       0x01
9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
9915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**  Definitions for different HCI parameters
9925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_MIN_MAX_PERIOD      0x0003
9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_MAX_MAX_PERIOD      0xFFFF
9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_MIN_MIN_PERIOD      0x0002
9965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_MAX_MIN_PERIOD      0xFFFE
9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_INQUIRY_LENGTH          0x30
9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MIN_INQ_LAP                 0x9E8B00
10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_INQ_LAP                 0x9E8B3F
10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI role defenitions */
10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ROLE_MASTER                 0x00
10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ROLE_SLAVE                  0x01
10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ROLE_UNKNOWN                0xff
10075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI mode defenitions */
10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MODE_ACTIVE                 0x00
10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MODE_HOLD                   0x01
10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MODE_SNIFF                  0x02
10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MODE_PARK                   0x03
10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI Flow Control Mode defenitions */
10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PACKET_BASED_FC_MODE        0x00
10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BLOCK_BASED_FC_MODE         0x01
10175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define Packet types as requested by the Host */
10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACL_PKT_TYPE_NONE           0x0000
10205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACL_PKT_TYPE_DM1            0x0008
10215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACL_PKT_TYPE_DH1            0x0010
10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACL_PKT_TYPE_AUX1           0x0200
10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACL_PKT_TYPE_DM3            0x0400
10245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACL_PKT_TYPE_DH3            0x0800
10255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACL_PKT_TYPE_DM5            0x4000
10265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACL_PKT_TYPE_DH5            0x8000
10275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define key type in the Master Link Key command */
10295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USE_SEMI_PERMANENT_KEY      0x00
10305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USE_TEMPORARY_KEY           0x01
10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page scan period modes */
10335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_REP_MODE_R0       0x00
10345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_REP_MODE_R1       0x01
10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_REP_MODE_R2       0x02
10365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define limits for page scan repetition modes */
10385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_R1_LIMIT          0x0800
10395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_R2_LIMIT          0x1000
10405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page scan period modes */
10425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_PER_MODE_P0       0x00
10435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_PER_MODE_P1       0x01
10445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_PER_MODE_P2       0x02
10455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page scan modes */
10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MANDATARY_PAGE_SCAN_MODE    0x00
10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_OPTIONAL_PAGE_SCAN_MODE1    0x01
10495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_OPTIONAL_PAGE_SCAN_MODE2    0x02
10505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_OPTIONAL_PAGE_SCAN_MODE3    0x03
10515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page and inquiry scan types */
10535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SCAN_TYPE_STANDARD          0x00
10545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SCAN_TYPE_INTERLACED        0x01       /* 1.2 devices or later */
10555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEF_SCAN_TYPE               HCI_SCAN_TYPE_STANDARD
10565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for quality of service service types */
10585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SERVICE_NO_TRAFFIC          0x00
10595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SERVICE_BEST_EFFORT         0x01
10605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SERVICE_GUARANTEED          0x02
10615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_LATENCY_DO_NOT_CARE     0xFFFFFFFF
10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_DELAY_DO_NOT_CARE       0xFFFFFFFF
10645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for Flow Specification */
10665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_LATENCY_DO_NOT_CARE 0xFFFFFFFF
10675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for AFH Channel Map */
10695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AFH_CHANNEL_MAP_LEN         10
10705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for Extended Inquiry Response */
10725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXT_INQ_RESPONSE_LEN        240
10735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_FLAGS_TYPE                   BT_EIR_FLAGS_TYPE
10745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_MORE_16BITS_UUID_TYPE        BT_EIR_MORE_16BITS_UUID_TYPE
10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_COMPLETE_16BITS_UUID_TYPE    BT_EIR_COMPLETE_16BITS_UUID_TYPE
10765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_MORE_32BITS_UUID_TYPE        BT_EIR_MORE_32BITS_UUID_TYPE
10775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_COMPLETE_32BITS_UUID_TYPE    BT_EIR_COMPLETE_32BITS_UUID_TYPE
10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_MORE_128BITS_UUID_TYPE       BT_EIR_MORE_128BITS_UUID_TYPE
10795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_COMPLETE_128BITS_UUID_TYPE   BT_EIR_COMPLETE_128BITS_UUID_TYPE
10805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_SHORTENED_LOCAL_NAME_TYPE    BT_EIR_SHORTENED_LOCAL_NAME_TYPE
10815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_COMPLETE_LOCAL_NAME_TYPE     BT_EIR_COMPLETE_LOCAL_NAME_TYPE
10825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_TX_POWER_LEVEL_TYPE          BT_EIR_TX_POWER_LEVEL_TYPE
10835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_MANUFACTURER_SPECIFIC_TYPE   BT_EIR_MANUFACTURER_SPECIFIC_TYPE
10845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_OOB_BD_ADDR_TYPE             BT_EIR_OOB_BD_ADDR_TYPE
10855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_OOB_COD_TYPE                 BT_EIR_OOB_COD_TYPE
10865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_OOB_SSP_HASH_C_TYPE          BT_EIR_OOB_SSP_HASH_C_TYPE
10875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EIR_OOB_SSP_RAND_R_TYPE          BT_EIR_OOB_SSP_RAND_R_TYPE
10885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for Write Simple Pairing Mode */
10905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SP_MODE_UNDEFINED           0x00
10915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SP_MODE_ENABLED             0x01
10925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
10935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for Write Simple Pairing Debug Mode */
10945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SPD_MODE_DISABLED           0x00
10955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SPD_MODE_ENABLED            0x01
10965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1097444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* Definitions for Write Secure Connections Host Support */
1098444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_SC_MODE_DISABLED            0x00
1099444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_SC_MODE_ENABLED             0x01
1100444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
11015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for IO Capability Response/Command */
11025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_DISPLAY_ONLY         0x00
11035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_DISPLAY_YESNO        0x01
11045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_KEYBOARD_ONLY        0x02
11055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_NO_IO                0x03
11065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_OOB_AUTH_DATA_NOT_PRESENT   0x00
11085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_OOB_REM_AUTH_DATA_PRESENT   0x01
11095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MITM_PROTECT_NOT_REQUIRED  0x00
11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MITM_PROTECT_REQUIRED      0x01
11125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Policy settings status */
11155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISABLE_ALL_LM_MODES        0x0000
11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENABLE_MASTER_SLAVE_SWITCH  0x0001
11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENABLE_HOLD_MODE            0x0002
11185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENABLE_SNIFF_MODE           0x0004
11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENABLE_PARK_MODE            0x0008
11205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* By default allow switch, because host can not allow that */
11225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* that until he created the connection */
11235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_POLICY_SETTINGS     HCI_DISABLE_ALL_LM_MODES
11245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Filters that are sent in set filter command */
11265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILTER_TYPE_CLEAR_ALL       0x00
11275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILTER_INQUIRY_RESULT       0x01
11285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILTER_CONNECTION_SETUP     0x02
11295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILTER_COND_NEW_DEVICE      0x00
11315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILTER_COND_DEVICE_CLASS    0x01
11325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILTER_COND_BD_ADDR         0x02
11335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DO_NOT_AUTO_ACCEPT_CONNECT  1
11355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DO_AUTO_ACCEPT_CONNECT      2   /* role switch disabled */
11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DO_AUTO_ACCEPT_CONNECT_RS   3   /* role switch enabled (1.1 errata 1115) */
11375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Auto accept flags */
11395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTO_ACCEPT_OFF             0x00
11405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTO_ACCEPT_ACL_CONNECTIONS 0x01
11415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTO_ACCEPT_SCO_CONNECTIONS 0x02
11425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PIN type */
11445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_TYPE_VARIABLE           0
11455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_TYPE_FIXED              1
11465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Loopback Modes */
11485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOOPBACK_MODE_DISABLED      0
11495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOOPBACK_MODE_LOCAL         1
11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOOPBACK_MODE_REMOTE        2
11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define SLOTS_PER_10MS                  16      /* 0.625 ms slots in a 10 ms tick */
11535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Maximum connection accept timeout in 0.625msec */
11555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_CONN_ACCEPT_TOUT        0xB540  /* 29 sec */
11565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEF_CONN_ACCEPT_TOUT        0x1F40  /* 5 sec */
11575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page timeout is used in LC only and LC is counting down slots not using OS */
11595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_PAGE_TOUT           0x2000  /* 5.12 sec (in slots) */
11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Scan enable flags */
11625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_NO_SCAN_ENABLED             0x00
11635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_SCAN_ENABLED        0x01
11645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGE_SCAN_ENABLED           0x02
11655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Pagescan timer definitions in 0.625 ms */
11675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MIN_PAGESCAN_INTERVAL       0x12    /* 11.25 ms */
11685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_PAGESCAN_INTERVAL       0x1000  /* 2.56 sec */
11695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEF_PAGESCAN_INTERVAL       0x0800  /* 1.28 sec */
11705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Parameter for pagescan window is passed to LC and is kept in slots */
11725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MIN_PAGESCAN_WINDOW         0x11    /* 10.625 ms */
11735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_PAGESCAN_WINDOW         0x1000  /* 2.56  sec */
11745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEF_PAGESCAN_WINDOW         0x12    /* 11.25 ms  */
11755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiryscan timer definitions in 0.625 ms */
11775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MIN_INQUIRYSCAN_INTERVAL    0x12    /* 11.25 ms */
11785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_INQUIRYSCAN_INTERVAL    0x1000  /* 2.56 sec */
11795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEF_INQUIRYSCAN_INTERVAL    0x1000  /* 2.56 sec */
11805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Parameter for inquiryscan window is passed to LC and is kept in slots */
11825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MIN_INQUIRYSCAN_WINDOW      0x11    /* 10.625 ms */
11835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_INQUIRYSCAN_WINDOW      0x1000  /* 2.56 sec */
11845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEF_INQUIRYSCAN_WINDOW      0x12    /* 11.25 ms */
11855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption modes */
11875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPT_MODE_DISABLED       0x00
11885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPT_MODE_POINT_TO_POINT 0x01
11895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPT_MODE_ALL            0x02
11905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Voice settings */
11925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_CODING_LINEAR           0x0000 /* 0000000000 */
11935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_CODING_U_LAW            0x0100 /* 0100000000 */
11945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_CODING_A_LAW            0x0200 /* 1000000000 */
11955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_CODING_MASK             0x0300 /* 1100000000 */
11965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
11975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_DATA_FMT_1S_COMPLEMENT  0x0000 /* 0000000000 */
11985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_DATA_FMT_2S_COMPLEMENT  0x0040 /* 0001000000 */
11995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_DATA_FMT_SIGN_MAGNITUDE 0x0080 /* 0010000000 */
12005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_DATA_FMT_UNSIGNED       0x00c0 /* 0011000000 */
12015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_DATA_FMT_MASK           0x00c0 /* 0011000000 */
12025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_SAMPLE_SIZE_8BIT        0x0000 /* 0000000000 */
12045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_SAMPLE_SIZE_16BIT       0x0020 /* 0000100000 */
12055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_SAMPLE_SIZE_MASK        0x0020 /* 0000100000 */
12065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_LINEAR_PCM_BIT_POS_MASK 0x001c /* 0000011100 */
12085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_LINEAR_PCM_BIT_POS_OFFS 2
12095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AIR_CODING_FORMAT_CVSD      0x0000 /* 0000000000 */
12115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AIR_CODING_FORMAT_U_LAW     0x0001 /* 0000000001 */
12125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AIR_CODING_FORMAT_A_LAW     0x0002 /* 0000000010 */
12135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AIR_CODING_FORMAT_TRANSPNT  0x0003 /* 0000000011 */
12145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AIR_CODING_FORMAT_MASK      0x0003 /* 0000000011 */
12155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* default                                        0001100000 */
12175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_VOICE_SETTINGS    (HCI_INP_CODING_LINEAR \
12185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     | HCI_INP_DATA_FMT_2S_COMPLEMENT \
12195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     | HCI_INP_SAMPLE_SIZE_16BIT \
12205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project                                     | HCI_AIR_CODING_FORMAT_CVSD)
12215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CVSD_SUPPORTED(x)       (((x) & HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_CVSD)
12235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_U_LAW_SUPPORTED(x)      (((x) & HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_U_LAW)
12245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_A_LAW_SUPPORTED(x)      (((x) & HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_A_LAW)
12255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TRANSPNT_SUPPORTED(x)   (((x) & HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_TRANSPNT)
12265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Retransmit timer definitions in 0.625 */
12285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_AUTO_FLUSH_TOUT         0x07FF
12295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_AUTO_FLUSH_TOUT     0       /* No auto flush */
12305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Broadcast retransmitions */
12325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_NUM_BCAST_RETRAN    1
12335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define broadcast data types as passed in the hci data packet */
12355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_POINT_TO_POINT         0x00
12365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_ACTIVE_BCAST           0x01
12375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_PICONET_BCAST          0x02
12385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Hold mode activity */
12405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAINTAIN_CUR_POWER_STATE    0x00
12415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUSPEND_PAGE_SCAN           0x01
12425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUSPEND_INQUIRY_SCAN        0x02
12435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUSPEND_PERIODIC_INQUIRIES  0x04
12445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Default Link Supervision timeoout */
12465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_INACT_TOUT          0x7D00  /* BR/EDR (20 seconds) */
12475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DEFAULT_AMP_INACT_TOUT      0x3E80  /* AMP    (10 seconds) */
12485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read transmit power level parameter */
12505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CURRENT                0x00
12515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_MAXIMUM                0x01
12525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Link types for connection complete event */
12545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_TYPE_SCO               0x00
12555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_TYPE_ACL               0x01
12565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_TYPE_ESCO              0x02
12575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Link Key Notification Event (Key Type) definitions */
12595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_COMBINATION       0x00
12605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_LOCAL_UNIT        0x01
12615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_REMOTE_UNIT       0x02
12625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_DEBUG_COMB        0x03
12635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_UNAUTH_COMB       0x04
12645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_AUTH_COMB         0x05
12655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_CHANGED_COMB      0x06
1266444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LKEY_TYPE_UNAUTH_COMB_P_256 0x07
1267444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LKEY_TYPE_AUTH_COMB_P_256   0x08
12685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Internal definitions - not used over HCI */
12705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_AMP_WIFI          0x80
12715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_AMP_UWB           0x81
12725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LKEY_TYPE_UNKNOWN           0xff
12735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read Local Version HCI Version return values (Command Complete Event) */
12755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VERSION_1_0B                0x00
12765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_VERSION_1_1                 0x01
12775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define an invalid value for a handle */
12795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INVALID_HANDLE              0xFFFF
12805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define max ammount of data in the HCI command */
12825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_COMMAND_SIZE        255
12835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the preamble length for all HCI Commands.
12855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** This is 2-bytes for opcode and 1 byte for length
12865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
12875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PREAMBLE_SIZE      3
12885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the preamble length for all HCI Events
12905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** This is 1-byte for opcode and 1 byte for length
12915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
12925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PREAMBLE_SIZE      2
12935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SCO_PREAMBLE_SIZE   3
12945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_PREAMBLE_SIZE  4
12955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* local Bluetooth controller id for AMP HCI */
12975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LOCAL_BR_EDR_CONTROLLER_ID      0
12985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
12995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* controller id types for AMP HCI */
13005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONTROLLER_TYPE_BR_EDR      0
13015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONTROLLER_TYPE_802_11      1
13025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CONTROLLER_TYPE_ECMA        2
13035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_CONTROLLER_TYPES        3
13045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1305ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/*  ConnectionLess Broadcast */
1306ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_CLB_DISABLE                 0x00
1307ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_CLB_ENABLE                  0x01
13085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1309ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* ConnectionLess Broadcast Data fragment */
1310ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_CLB_FRAGMENT_CONT           0x00
1311ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_CLB_FRAGMENT_START          0x01
1312ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_CLB_FRAGMENT_END            0x02
1313ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_CLB_FRAGMENT_SINGLE         0x03
13145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP Controller Status codes
13165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
13175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_CTRLR_PHYSICALLY_DOWN   0
13185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_CTRLR_USABLE_BY_BT      1
13195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_CTRLR_UNUSABLE_FOR_BT   2
13205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_CTRLR_LOW_CAP_FOR_BT    3
13215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_CTRLR_MED_CAP_FOR_BT    4
13225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_CTRLR_HIGH_CAP_FOR_BT   5
13235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_CTRLR_FULL_CAP_FOR_BT   6
13245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_AMP_STATUS_TYPES        7
13265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the extended flow specification fields used by AMP */
13295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projecttypedef struct
13305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{
13315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       id;
13325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT8       stype;
13335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT16      max_sdu_size;
13345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      sdu_inter_time;
13355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      access_latency;
13365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project    UINT32      flush_timeout;
13375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tHCI_EXT_FLOW_SPEC;
13385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI message type definitions (for H4 messages) */
13415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIT_TYPE_COMMAND   1
13425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIT_TYPE_ACL_DATA  2
13435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIT_TYPE_SCO_DATA  3
13445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIT_TYPE_EVENT     4
13455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIT_TYPE_LM_DIAG   7
13465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIT_TYPE_NFC       16
13475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIT_LM_DIAG_LENGTH 63
13495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Parameter information for HCI_BRCM_SET_ACL_PRIORITY */
13515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BRCM_ACL_PRIORITY_PARAM_SIZE    3
13525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BRCM_ACL_PRIORITY_LOW           0x00
13535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BRCM_ACL_PRIORITY_HIGH          0xFF
13545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_BRCM_SET_ACL_PRIORITY           (0x0057 | HCI_GRP_VENDOR_SPECIFIC)
13555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define values for LMP Test Control parameters
13575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Test Scenario, Hopping Mode, Power Control Mode
13585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
13595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_PAUSE        0
13605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_TXTEST_0     1
13615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_TXTEST_1     2
13625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_TXTEST_1010  3
13635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_PSRND_BITSEQ 4
13645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_CLOSEDLB_ACL 5
13655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_CLOSEDLB_SCO 6
13665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_ACL_NOWHIT   7
13675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_SCO_NOWHIT   8
13685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_TXTEST_11110000  9
13695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_EXITTESTMODE 255
13705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_HOPMOD_RXTX1FREQ    0
13725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_HOPMOD_HOP_EURUSA   1
13735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_HOPMOD_HOP_JAPAN    2
13745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_HOPMOD_HOP_FRANCE   3
13755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_HOPMOD_HOP_SPAIN    4
13765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_HOPMOD_REDUCED_HOP  5
13775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_POWCTL_FIXEDTX_OP   0
13795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_POWCTL_ADAPTIVE     1
13805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1381c772b4bb7f15123ef54638a91eb1b64024f8aa7fZach Johnson// TODO(zachoverflow): remove this once broadcom specific hacks are removed
13825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_COMPID_BROADCOM             15
1383c772b4bb7f15123ef54638a91eb1b64024f8aa7fZach Johnson
13845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
13855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Define the packet types in the packet header, and a couple extra
13865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
13875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_NULL   0x00
13885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_POLL   0x01
13895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_FHS    0x02
13905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_DM1    0x03
13915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_DH1    0x04
13935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_HV1    0x05
13945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_HV2    0x06
13955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_HV3    0x07
13965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_DV     0x08
13975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_AUX1   0x09
13985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
13995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_DM3    0x0a
14005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_DH3    0x0b
14015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_DM5    0x0e
14035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_DH5    0x0f
14045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_ID     0x10        /* Internally used packet types */
14075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_BAD    0x11
14085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define PKT_TYPE_NONE   0x12
14095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
14115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Define packet size
14125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
14135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DM1_PACKET_SIZE         17
14145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DH1_PACKET_SIZE         27
14155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DM3_PACKET_SIZE         121
14165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DH3_PACKET_SIZE         183
14175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DM5_PACKET_SIZE         224
14185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DH5_PACKET_SIZE         339
14195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUX1_PACKET_SIZE        29
14205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HV1_PACKET_SIZE         10
14215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HV2_PACKET_SIZE         20
14225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HV3_PACKET_SIZE         30
14235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DV_PACKET_SIZE          9
14245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR2_DH1_PACKET_SIZE    54
14255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR2_DH3_PACKET_SIZE    367
14265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR2_DH5_PACKET_SIZE    679
14275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR3_DH1_PACKET_SIZE    83
14285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR3_DH3_PACKET_SIZE    552
14295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR3_DH5_PACKET_SIZE    1021
14305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14313aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Feature Pages */
14323aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURES_PAGE_0     0       /* Extended Feature Page 0 (regular features) */
14333aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURES_PAGE_1     1       /* Extended Feature Page 1 */
14343aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURES_PAGE_2     2       /* Extended Feature Page 2 */
14353aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURES_PAGE_MAX   HCI_EXT_FEATURES_PAGE_2
14363aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
14373aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_FEATURE_BYTES_PER_PAGE      8
14383aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
14395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURES_KNOWN(x) ((x[0] | x[1] | x[2] | x[3] | x[4] | x[5] | x[6] | x[7]) != 0)
14405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14413aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*
14423aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**   LMP features encoding - page 0
14433aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*/
14445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_PACKETS_MASK 0x01
14455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_PACKETS_OFF  0
14465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_3_SLOT_PACKETS_SUPPORTED(x) ((x)[HCI_FEATURE_3_SLOT_PACKETS_OFF] & HCI_FEATURE_3_SLOT_PACKETS_MASK)
14475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_5_SLOT_PACKETS_MASK 0x02
14495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_5_SLOT_PACKETS_OFF  0
14505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_5_SLOT_PACKETS_SUPPORTED(x) ((x)[HCI_FEATURE_5_SLOT_PACKETS_OFF] & HCI_FEATURE_5_SLOT_PACKETS_MASK)
14515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ENCRYPTION_MASK     0x04
14535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ENCRYPTION_OFF      0
14545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPTION_SUPPORTED(x)     ((x)[HCI_FEATURE_ENCRYPTION_OFF] & HCI_FEATURE_ENCRYPTION_MASK)
14555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SLOT_OFFSET_MASK    0x08
14575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SLOT_OFFSET_OFF     0
14585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SLOT_OFFSET_SUPPORTED(x)    ((x)[HCI_FEATURE_SLOT_OFFSET_OFF] & HCI_FEATURE_SLOT_OFFSET_MASK)
14595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_TIMING_ACC_MASK     0x10
14615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_TIMING_ACC_OFF      0
14625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TIMING_ACC_SUPPORTED(x)     ((x)[HCI_FEATURE_TIMING_ACC_OFF] & HCI_FEATURE_TIMING_ACC_MASK)
14635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SWITCH_MASK         0x20
14655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SWITCH_OFF          0
14665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SWITCH_SUPPORTED(x)         ((x)[HCI_FEATURE_SWITCH_OFF] & HCI_FEATURE_SWITCH_MASK)
14675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_HOLD_MODE_MASK      0x40
14695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_HOLD_MODE_OFF       0
14705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOLD_MODE_SUPPORTED(x)      ((x)[HCI_FEATURE_HOLD_MODE_OFF] & HCI_FEATURE_HOLD_MODE_MASK)
14715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SNIFF_MODE_MASK     0x80
14735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SNIFF_MODE_OFF      0
14745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_MODE_SUPPORTED(x)      ((x)[HCI_FEATURE_SNIFF_MODE_OFF] & HCI_FEATURE_SNIFF_MODE_MASK)
14755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_PARK_MODE_MASK      0x01
14775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_PARK_MODE_OFF       1
14785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PARK_MODE_SUPPORTED(x)      ((x)[HCI_FEATURE_PARK_MODE_OFF] & HCI_FEATURE_PARK_MODE_MASK)
14795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_RSSI_MASK           0x02
14815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_RSSI_OFF            1
14825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RSSI_SUPPORTED(x)           ((x)[HCI_FEATURE_RSSI_OFF] & HCI_FEATURE_RSSI_MASK)
14835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_CQM_DATA_RATE_MASK  0x04
14855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_CQM_DATA_RATE_OFF   1
14865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CQM_DATA_RATE_SUPPORTED(x)  ((x)[HCI_FEATURE_CQM_DATA_RATE_OFF] & HCI_FEATURE_CQM_DATA_RATE_MASK)
14875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SCO_LINK_MASK       0x08
14895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SCO_LINK_OFF        1
14905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SCO_LINK_SUPPORTED(x)       ((x)[HCI_FEATURE_SCO_LINK_OFF] & HCI_FEATURE_SCO_LINK_MASK)
14915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_HV2_PACKETS_MASK    0x10
14935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_HV2_PACKETS_OFF     1
14945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HV2_PACKETS_SUPPORTED(x)    ((x)[HCI_FEATURE_HV2_PACKETS_OFF] & HCI_FEATURE_HV2_PACKETS_MASK)
14955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
14965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_HV3_PACKETS_MASK    0x20
14975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_HV3_PACKETS_OFF     1
14985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HV3_PACKETS_SUPPORTED(x)    ((x)[HCI_FEATURE_HV3_PACKETS_OFF] & HCI_FEATURE_HV3_PACKETS_MASK)
14995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_U_LAW_MASK          0x40
15015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_U_LAW_OFF           1
15025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_U_LAW_SUPPORTED(x)      ((x)[HCI_FEATURE_U_LAW_OFF] & HCI_FEATURE_U_LAW_MASK)
15035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_A_LAW_MASK          0x80
15055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_A_LAW_OFF           1
15065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_A_LAW_SUPPORTED(x)      ((x)[HCI_FEATURE_A_LAW_OFF] & HCI_FEATURE_A_LAW_MASK)
15075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_CVSD_MASK           0x01
15095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_CVSD_OFF            2
15105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_CVSD_SUPPORTED(x)       ((x)[HCI_FEATURE_CVSD_OFF] & HCI_FEATURE_CVSD_MASK)
15115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_PAGING_SCHEME_MASK  0x02
15135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_PAGING_SCHEME_OFF   2
15145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PAGING_SCHEME_SUPPORTED(x) ((x)[HCI_FEATURE_PAGING_SCHEME_OFF] & HCI_FEATURE_PAGING_SCHEME_MASK)
15155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_POWER_CTRL_MASK     0x04
15175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_POWER_CTRL_OFF      2
15185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_POWER_CTRL_SUPPORTED(x)     ((x)[HCI_FEATURE_POWER_CTRL_OFF] & HCI_FEATURE_POWER_CTRL_MASK)
15195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_TRANSPNT_MASK       0x08
15215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_TRANSPNT_OFF        2
15225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_TRANSPNT_SUPPORTED(x)   ((x)[HCI_FEATURE_TRANSPNT_OFF] & HCI_FEATURE_TRANSPNT_MASK)
15235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_FLOW_CTRL_LAG_MASK  0x70
15255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_FLOW_CTRL_LAG_OFF   2
15265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_CTRL_LAG_VALUE(x)      (((x)[HCI_FEATURE_FLOW_CTRL_LAG_OFF] & HCI_FEATURE_FLOW_CTRL_LAG_MASK) >> 4)
15275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_BROADCAST_ENC_MASK  0x80
15295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_BROADCAST_ENC_OFF   2
15305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_BCAST_ENC_SUPPORTED(x)  ((x)[HCI_FEATURE_BROADCAST_ENC_OFF] & HCI_FEATURE_BROADCAST_ENC_MASK)
15315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SCATTER_MODE_MASK   0x01
15335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SCATTER_MODE_OFF    3
15345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_SCATTER_MODE_SUPPORTED(x) ((x)[HCI_FEATURE_SCATTER_MODE_OFF] & HCI_FEATURE_SCATTER_MODE_MASK)
15355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EDR_ACL_2MPS_MASK   0x02
15375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EDR_ACL_2MPS_OFF    3
15385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR_ACL_2MPS_SUPPORTED(x)   ((x)[HCI_FEATURE_EDR_ACL_2MPS_OFF] & HCI_FEATURE_EDR_ACL_2MPS_MASK)
15395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EDR_ACL_3MPS_MASK   0x04
15415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EDR_ACL_3MPS_OFF    3
15425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR_ACL_3MPS_SUPPORTED(x)   ((x)[HCI_FEATURE_EDR_ACL_3MPS_OFF] & HCI_FEATURE_EDR_ACL_3MPS_MASK)
15435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ENHANCED_INQ_MASK   0x08
15455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ENHANCED_INQ_OFF    3
15465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENHANCED_INQ_SUPPORTED(x)   ((x)[HCI_FEATURE_ENHANCED_INQ_OFF] & HCI_FEATURE_ENHANCED_INQ_MASK)
15475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_INTERLACED_INQ_SCAN_MASK   0x10
15495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_INTERLACED_INQ_SCAN_OFF    3
15505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_INTERLACED_INQ_SCAN_SUPPORTED(x) ((x)[HCI_FEATURE_INTERLACED_INQ_SCAN_OFF] & HCI_FEATURE_INTERLACED_INQ_SCAN_MASK)
15515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_INTERLACED_PAGE_SCAN_MASK  0x20
15535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_INTERLACED_PAGE_SCAN_OFF   3
15545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_INTERLACED_PAGE_SCAN_SUPPORTED(x) ((x)[HCI_FEATURE_INTERLACED_PAGE_SCAN_OFF] & HCI_FEATURE_INTERLACED_PAGE_SCAN_MASK)
15555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_INQ_RSSI_MASK       0x40
15575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_INQ_RSSI_OFF        3
15585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_INQ_RSSI_SUPPORTED(x)   ((x)[HCI_FEATURE_INQ_RSSI_OFF] & HCI_FEATURE_INQ_RSSI_MASK)
15595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ESCO_EV3_MASK       0x80
15615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ESCO_EV3_OFF        3
15625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_EV3_SUPPORTED(x)       ((x)[HCI_FEATURE_ESCO_EV3_OFF] & HCI_FEATURE_ESCO_EV3_MASK)
15635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ESCO_EV4_MASK       0x01
15655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ESCO_EV4_OFF        4
15665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_EV4_SUPPORTED(x)       ((x)[HCI_FEATURE_ESCO_EV4_OFF] & HCI_FEATURE_ESCO_EV4_MASK)
15675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ESCO_EV5_MASK       0x02
15695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ESCO_EV5_OFF        4
15705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ESCO_EV5_SUPPORTED(x)       ((x)[HCI_FEATURE_ESCO_EV5_OFF] & HCI_FEATURE_ESCO_EV5_MASK)
15715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ABSENCE_MASKS_MASK  0x04
15735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ABSENCE_MASKS_OFF   4
15745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_ABSENCE_MASKS_SUPPORTED(x) ((x)[HCI_FEATURE_ABSENCE_MASKS_OFF] & HCI_FEATURE_ABSENCE_MASKS_MASK)
15755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CAP_SLAVE_MASK  0x08
15775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CAP_SLAVE_OFF   4
15785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_AFH_CAP_SLAVE_SUPPORTED(x) ((x)[HCI_FEATURE_AFH_CAP_SLAVE_OFF] & HCI_FEATURE_AFH_CAP_SLAVE_MASK)
15795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CLASS_SLAVE_MASK 0x10
15815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CLASS_SLAVE_OFF  4
15825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_AFH_CLASS_SLAVE_SUPPORTED(x) ((x)[HCI_FEATURE_AFH_CLASS_SLAVE_OFF] & HCI_FEATURE_AFH_CLASS_SLAVE_MASK)
15835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1584ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#if 1
1585ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_FEATURE_BREDR_NOT_SPT_MASK     0x20
1586ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_FEATURE_BREDR_NOT_SPT_OFF      4
1587ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_BREDR_NOT_SPT_SUPPORTED(x) ((x)[HCI_FEATURE_BREDR_NOT_SPT_OFF] & HCI_FEATURE_BREDR_NOT_SPT_MASK)
1588ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1589ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_FEATURE_LE_SPT_MASK      0x40
1590ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_FEATURE_LE_SPT_OFF       4
1591ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_LE_SPT_SUPPORTED(x)  ((x)[HCI_FEATURE_LE_SPT_OFF] & HCI_FEATURE_LE_SPT_MASK)
1592ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#else
1593ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
15945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ALIAS_AUTH_MASK     0x20
15955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ALIAS_AUTH_OFF      4
15965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_ALIAS_AUTH_SUPPORTED(x) ((x)[HCI_FEATURE_ALIAS_AUTH_OFF] & HCI_FEATURE_ALIAS_AUTH_MASK)
15975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
15985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ANON_MODE_MASK      0x40
15995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ANON_MODE_OFF       4
16005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_ANON_MODE_SUPPORTED(x)  ((x)[HCI_FEATURE_ANON_MODE_OFF] & HCI_FEATURE_ANON_MODE_MASK)
1601ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#endif
16025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_EDR_ACL_MASK 0x80
16045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_EDR_ACL_OFF  4
16055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_3_SLOT_EDR_ACL_SUPPORTED(x) ((x)[HCI_FEATURE_3_SLOT_EDR_ACL_OFF] & HCI_FEATURE_3_SLOT_EDR_ACL_MASK)
16065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_5_SLOT_EDR_ACL_MASK 0x01
16085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_5_SLOT_EDR_ACL_OFF  5
16095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_5_SLOT_EDR_ACL_SUPPORTED(x) ((x)[HCI_FEATURE_5_SLOT_EDR_ACL_OFF] & HCI_FEATURE_5_SLOT_EDR_ACL_MASK)
16105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SNIFF_SUB_RATE_MASK 0x02
16125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SNIFF_SUB_RATE_OFF  5
16135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_SUB_RATE_SUPPORTED(x) ((x)[HCI_FEATURE_SNIFF_SUB_RATE_OFF] & HCI_FEATURE_SNIFF_SUB_RATE_MASK)
16145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ATOMIC_ENCRYPT_MASK 0x04
16165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ATOMIC_ENCRYPT_OFF  5
16175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ATOMIC_ENCRYPT_SUPPORTED(x) ((x)[HCI_FEATURE_ATOMIC_ENCRYPT_OFF] & HCI_FEATURE_ATOMIC_ENCRYPT_MASK)
16185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CAP_MASTR_MASK  0x08
16205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CAP_MASTR_OFF   5
16215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_AFH_CAP_MASTR_SUPPORTED(x) ((x)[HCI_FEATURE_AFH_CAP_MASTR_OFF] & HCI_FEATURE_AFH_CAP_MASTR_MASK)
16225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CLASS_MASTR_MASK 0x10
16245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CLASS_MASTR_OFF  5
16255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_AFH_CLASS_MASTR_SUPPORTED(x) ((x)[HCI_FEATURE_AFH_CLASS_MASTR_OFF] & HCI_FEATURE_AFH_CLASS_MASTR_MASK)
16265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EDR_ESCO_2MPS_MASK  0x20
16285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EDR_ESCO_2MPS_OFF   5
16295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR_ESCO_2MPS_SUPPORTED(x)  ((x)[HCI_FEATURE_EDR_ESCO_2MPS_OFF] & HCI_FEATURE_EDR_ESCO_2MPS_MASK)
16305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EDR_ESCO_3MPS_MASK  0x40
16325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EDR_ESCO_3MPS_OFF   5
16335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EDR_ESCO_3MPS_SUPPORTED(x)  ((x)[HCI_FEATURE_EDR_ESCO_3MPS_OFF] & HCI_FEATURE_EDR_ESCO_3MPS_MASK)
16345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_EDR_ESCO_MASK 0x80
16365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_EDR_ESCO_OFF  5
16375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_3_SLOT_EDR_ESCO_SUPPORTED(x) ((x)[HCI_FEATURE_3_SLOT_EDR_ESCO_OFF] & HCI_FEATURE_3_SLOT_EDR_ESCO_MASK)
16385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EXT_INQ_RSP_MASK    0x01
16405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EXT_INQ_RSP_OFF     6
16415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXT_INQ_RSP_SUPPORTED(x)    ((x)[HCI_FEATURE_EXT_INQ_RSP_OFF] & HCI_FEATURE_EXT_INQ_RSP_MASK)
16425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1643ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#if 1 /* TOKYO spec definition */
1644ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_FEATURE_SIMUL_LE_BREDR_MASK 0x02
1645ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_FEATURE_SIMUL_LE_BREDR_OFF  6
1646ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SIMUL_LE_BREDR_SUPPORTED(x) ((x)[HCI_FEATURE_SIMUL_LE_BREDR_OFF] & HCI_FEATURE_SIMUL_LE_BREDR_MASK)
1647ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1648ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#else
16495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ANUM_PIN_AWARE_MASK 0x02
16505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ANUM_PIN_AWARE_OFF  6
16515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ANUM_PIN_AWARE_SUPPORTED(x) ((x)[HCI_FEATURE_ANUM_PIN_AWARE_OFF] & HCI_FEATURE_ANUM_PIN_AWARE_MASK)
1652ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#endif
16535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ANUM_PIN_CAP_MASK   0x04
16555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ANUM_PIN_CAP_OFF    6
16565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ANUM_PIN_CAP_SUPPORTED(x)   ((x)[HCI_FEATURE_ANUM_PIN_CAP_OFF] & HCI_FEATURE_ANUM_PIN_CAP_MASK)
16575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SIMPLE_PAIRING_MASK 0x08
16595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SIMPLE_PAIRING_OFF  6
16605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SIMPLE_PAIRING_SUPPORTED(x) ((x)[HCI_FEATURE_SIMPLE_PAIRING_OFF] & HCI_FEATURE_SIMPLE_PAIRING_MASK)
16615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ENCAP_PDU_MASK      0x10
16635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ENCAP_PDU_OFF       6
16645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCAP_PDU_SUPPORTED(x)      ((x)[HCI_FEATURE_ENCAP_PDU_OFF] & HCI_FEATURE_ENCAP_PDU_MASK)
16655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ERROR_DATA_MASK     0x20
16675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ERROR_DATA_OFF      6
16685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ERROR_DATA_SUPPORTED(x)     ((x)[HCI_FEATURE_ERROR_DATA_OFF] & HCI_FEATURE_ERROR_DATA_MASK)
16695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_NON_FLUSHABLE_PB_MASK      0x40
16715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_NON_FLUSHABLE_PB_OFF       6
16725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This feature is causing frequent link drops when doing call switch with certain av/hfp headsets */
16745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_NON_FLUSHABLE_PB_SUPPORTED(x)      (0)//((x)[HCI_FEATURE_NON_FLUSHABLE_PB_OFF] & HCI_FEATURE_NON_FLUSHABLE_PB_MASK)
16755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_LINK_SUP_TO_EVT_MASK 0x01
16775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_LINK_SUP_TO_EVT_OFF  7
16785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_SUP_TO_EVT_SUPPORTED(x) ((x)[HCI_FEATURE_LINK_SUP_TO_EVT_OFF] & HCI_FEATURE_LINK_SUP_TO_EVT_MASK)
16795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_INQ_RESP_TX_MASK     0x02
16815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_INQ_RESP_TX_OFF      7
16825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQ_RESP_TX_SUPPORTED(x)     ((x)[HCI_FEATURE_INQ_RESP_TX_OFF] & HCI_FEATURE_INQ_RESP_TX_MASK)
16835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EXTENDED_MASK       0x80
16855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_EXTENDED_OFF        7
16865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LMP_EXTENDED_SUPPORTED(x)   ((x)[HCI_FEATURE_EXTENDED_OFF] & HCI_FEATURE_EXTENDED_MASK)
16875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
16885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
16893aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**   LMP features encoding - page 1
16905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
16915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXT_FEATURE_SSP_HOST_MASK 0x01
16925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXT_FEATURE_SSP_HOST_OFF  0
16935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SSP_HOST_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SSP_HOST_OFF] & HCI_EXT_FEATURE_SSP_HOST_MASK)
16945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
1695ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_EXT_FEATURE_LE_HOST_MASK 0x02
1696ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_EXT_FEATURE_LE_HOST_OFF  0
1697ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_LE_HOST_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_LE_HOST_OFF] & HCI_EXT_FEATURE_LE_HOST_MASK)
1698ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
1699ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_EXT_FEATURE_SIMUL_DUMO_HOST_MASK 0x04
1700ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_EXT_FEATURE_SIMUL_DUMO_HOST_OFF  0
1701ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SIMUL_DUMO_HOST_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SIMUL_DUMO_HOST_OFF] & HCI_EXT_FEATURE_SIMUL_DUMO_HOST_MASK)
1702ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
17037fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_EXT_FEATURE_SC_HOST_MASK 0x08
17047fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_EXT_FEATURE_SC_HOST_OFF  0
17057fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SC_HOST_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SC_HOST_OFF] & HCI_EXT_FEATURE_SC_HOST_MASK)
17067fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
17075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*
17083aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**   LMP features encoding - page 2
17093aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*/
17103aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_CSB_MASTER_MASK         0x01
17113aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_CSB_MASTER_OFF          0
17123aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_CSB_MASTER_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_CSB_MASTER_OFF] & HCI_EXT_FEATURE_CSB_MASTER_MASK)
17133aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
17143aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_CSB_SLAVE_MASK          0x02
17153aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_CSB_SLAVE_OFF           0
17163aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_CSB_SLAVE_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_CSB_SLAVE_OFF] & HCI_EXT_FEATURE_CSB_SLAVE_MASK)
17173aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
17183aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_MASK  0x04
17193aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_OFF   0
17203aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_SYNC_TRAIN_MASTER_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_OFF] & HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_MASK)
17213aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
17223aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_MASK    0x08
17233aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_OFF     0
17243aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_SYNC_SCAN_SLAVE_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_OFF] & HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_MASK)
17253aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
17263aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_INQ_RESP_NOTIF_MASK     0x10
17273aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_EXT_FEATURE_INQ_RESP_NOTIF_OFF      0
17283aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_INQ_RESP_NOTIF_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_INQ_RESP_NOTIF_OFF] & HCI_EXT_FEATURE_INQ_RESP_NOTIF_MASK)
17293aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
17307fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_EXT_FEATURE_SC_CTRLR_MASK           0x01
17317fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_EXT_FEATURE_SC_CTRLR_OFF            1
17327fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SC_CTRLR_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_SC_CTRLR_OFF] & HCI_EXT_FEATURE_SC_CTRLR_MASK)
17337fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
17347fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_EXT_FEATURE_PING_MASK               0x02
17357fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_EXT_FEATURE_PING_OFF                1
17367fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_PING_SUPPORTED(x) ((x)[HCI_EXT_FEATURE_PING_OFF] & HCI_EXT_FEATURE_PING_MASK)
17377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
17383aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*
17393aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach**   LE features encoding - page 0 (the only page for now)
17403aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*/
17417fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* LE Encryption */
17423aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_LE_FEATURE_LE_ENCRYPTION_MASK       0x01
17433aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_LE_FEATURE_LE_ENCRYPTION_OFF        0
17443aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_LE_ENCRYPTION_SUPPORTED(x) ((x)[HCI_LE_FEATURE_LE_ENCRYPTION_OFF] & HCI_LE_FEATURE_LE_ENCRYPTION_MASK)
17453aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
17467fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connection Parameters Request Procedure */
17477fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_FEATURE_CONN_PARAM_REQ_MASK       0x02
17487fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_FEATURE_CONN_PARAM_REQ_OFF        0
17497fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_CONN_PARAM_REQ_SUPPORTED(x) ((x)[HCI_LE_FEATURE_CONN_PARAM_REQ_OFF] & HCI_LE_FEATURE_CONN_PARAM_REQ_MASK)
17507fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
17517fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Extended Reject Indication */
17527fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_FEATURE_EXT_REJ_IND_MASK       0x04
17537fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_FEATURE_EXT_REJ_IND_OFF        0
17547fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_EXT_REJ_IND_SUPPORTED(x) ((x)[HCI_LE_FEATURE_EXT_REJ_IND_OFF] & HCI_LE_FEATURE_EXT_REJ_IND_MASK)
17557fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
17567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Slave-initiated Features Exchange */
17577fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_MASK       0x08
17587fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_OFF        0
17597fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_SLAVE_INIT_FEAT_EXC_SUPPORTED(x) ((x)[HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_OFF] & HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_MASK)
17603aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
1761444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* Enhanced privacy Feature: bit 6 */
1762444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_FEATURE_ENHANCED_PRIVACY_MASK       0x40
1763444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_FEATURE_ENHANCED_PRIVACY_OFF        0
1764444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_ENHANCED_PRIVACY_SUPPORTED(x) ((x)[HCI_LE_FEATURE_ENHANCED_PRIVACY_OFF] & HCI_LE_FEATURE_ENHANCED_PRIVACY_MASK)
1765444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
1766444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* Extended scanner filter policy : 7 */
1767444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_MASK       0x80
1768444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_OFF        0
1769444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LE_EXT_SCAN_FILTER_POLICY_SUPPORTED(x) ((x)[HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_OFF] & HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_MASK)
1770444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji
1771636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera/* Slave-initiated Features Exchange */
1772636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera#define HCI_LE_FEATURE_DATA_LEN_EXT_MASK       0x20
1773636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera#define HCI_LE_FEATURE_DATA_LEN_EXT_OFF        0
1774636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera#define HCI_LE_DATA_LEN_EXT_SUPPORTED(x) ((x)[HCI_LE_FEATURE_DATA_LEN_EXT_OFF] & HCI_LE_FEATURE_DATA_LEN_EXT_MASK)
1775636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera
17763aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/*
17775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project**   Local Supported Commands encoding
17785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
17795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_NUM_SUPP_COMMANDS_BYTES           64
17805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17817fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Supported Commands Byte 0 */
17825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_INQUIRY_MASK 0x01
17835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_INQUIRY_OFF  0
17845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_INQUIRY_OFF] & HCI_SUPP_COMMANDS_INQUIRY_MASK)
17855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_INQUIRY_CANCEL_MASK 0x02
17875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_INQUIRY_CANCEL_OFF  0
17885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INQUIRY_CANCEL_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_INQUIRY_CANCEL_OFF] & HCI_SUPP_COMMANDS_INQUIRY_CANCEL_MASK)
17895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_MASK     0x04
17915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_OFF      0
17925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PERIODIC_INQUIRY_SUPPORTED(x)     ((x)[HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_OFF] & HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_MASK)
17935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_MASK    0x08
17955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_OFF     0
17965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXIT_PERIODIC_INQUIRY_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_OFF] & HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_MASK)
17975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
17985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CREATE_CONN_MASK     0x10
17995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CREATE_CONN_OFF      0
18005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_CONN_SUPPORTED(x)     ((x)[HCI_SUPP_COMMANDS_CREATE_CONN_OFF] & HCI_SUPP_COMMANDS_CREATE_CONN_MASK)
18015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_DISCONNECT_MASK         0x20
18035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_DISCONNECT_OFF          0
18045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISCONNECT_SUPPORTED(x)         ((x)[HCI_SUPP_COMMANDS_DISCONNECT_OFF] & HCI_SUPP_COMMANDS_DISCONNECT_MASK)
18055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ADD_SCO_CONN_MASK      0x40
18075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ADD_SCO_CONN_OFF       0
18085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ADD_SCO_CONN_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_ADD_SCO_CONN_OFF] & HCI_SUPP_COMMANDS_ADD_SCO_CONN_MASK)
18095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_MASK     0x80
18115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_OFF      0
18125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CANCEL_CREATE_CONN_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_OFF] & HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_MASK)
18135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_MASK      0x01
18155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_OFF       1
18165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_CONN_REQUEST_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_OFF] & HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_MASK)
18175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_MASK           0x02
18195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_OFF            1
18205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REJECT_CONN_REQUEST_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_OFF] & HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_MASK)
18215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_MASK  0x04
18235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_OFF   1
18245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_REQUEST_REPLY_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_MASK)
18255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_MASK       0x08
18275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_OFF        1
18285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_REQUEST_NEG_REPLY_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_MASK)
18295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_MASK    0x10
18315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_OFF     1
18325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REQUEST_REPLY_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_MASK)
18335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_MASK    0x20
18355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_OFF     1
18365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REQUEST_NEG_REPLY_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_MASK)
18375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_MASK          0x40
18395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_OFF           1
18405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_CONN_PKT_TYPE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_OFF] & HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_MASK)
18415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_AUTH_REQUEST_MASK          0x80
18435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_AUTH_REQUEST_OFF           1
18445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTH_REQUEST_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_AUTH_REQUEST_OFF] & HCI_SUPP_COMMANDS_AUTH_REQUEST_MASK)
18455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_MASK      0x01
18475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_OFF       2
18485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_CONN_ENCRYPTION_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_OFF] & HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_MASK)
18495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_MASK           0x02
18515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_OFF            2
18525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_CONN_LINK_KEY_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_MASK)
18535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_MASTER_LINK_KEY_MASK  0x04
18555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_MASTER_LINK_KEY_OFF   2
18565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MASTER_LINK_KEY_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_MASTER_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_MASTER_LINK_KEY_MASK)
18575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_MASK       0x08
18595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_OFF        2
18605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REMOTE_NAME_REQUEST_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_OFF] & HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_MASK)
18615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_MASK    0x10
18635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_OFF     2
18645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CANCEL_REMOTE_NAME_REQUEST_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_OFF] & HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_MASK)
18655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_MASK    0x20
18675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_OFF     2
18685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_REMOTE_SUPP_FEATURES_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_OFF] & HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_MASK)
18695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_MASK          0x40
18715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_OFF           2
18725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_REMOTE_EXT_FEATURES_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_OFF] & HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_MASK)
18735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_MASK          0x80
18755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_OFF           2
18765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_REMOTE_VER_INFO_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_OFF] & HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_MASK)
18775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_MASK           0x01
18795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_OFF            3
18805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CLOCK_OFFSET_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_OFF] & HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_MASK)
18815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LMP_HANDLE_MASK  0x02
18835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LMP_HANDLE_OFF   3
18845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LMP_HANDLE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_READ_LMP_HANDLE_OFF] & HCI_SUPP_COMMANDS_READ_LMP_HANDLE_MASK)
18855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_HOLD_MODE_CMD_MASK           0x02
18875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_HOLD_MODE_CMD_OFF            4
18885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOLD_MODE_CMD_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_HOLD_MODE_CMD_OFF] & HCI_SUPP_COMMANDS_HOLD_MODE_CMD_MASK)
18895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_MASK  0x04
18915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_OFF   4
18925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_MODE_CMD_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_OFF] & HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_MASK)
18935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_MASK       0x08
18955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_OFF        4
18965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXIT_SNIFF_MODE_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_OFF] & HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_MASK)
18975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
18985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_PARK_STATE_MASK    0x10
18995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_PARK_STATE_OFF     4
19005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PARK_STATE_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_PARK_STATE_OFF] & HCI_SUPP_COMMANDS_PARK_STATE_MASK)
19015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_EXIT_PARK_STATE_MASK    0x20
19035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_EXIT_PARK_STATE_OFF     4
19045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXIT_PARK_STATE_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_EXIT_PARK_STATE_OFF] & HCI_SUPP_COMMANDS_EXIT_PARK_STATE_MASK)
19055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_QOS_SETUP_MASK          0x40
19075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_QOS_SETUP_OFF           4
19085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_SETUP_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_QOS_SETUP_OFF] & HCI_SUPP_COMMANDS_QOS_SETUP_MASK)
19095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ROLE_DISCOVERY_MASK          0x80
19115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ROLE_DISCOVERY_OFF           4
19125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ROLE_DISCOVERY_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_ROLE_DISCOVERY_OFF] & HCI_SUPP_COMMANDS_ROLE_DISCOVERY_MASK)
19135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SWITCH_ROLE_MASK      0x01
19155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SWITCH_ROLE_OFF       5
19165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SWITCH_ROLE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_SWITCH_ROLE_OFF] & HCI_SUPP_COMMANDS_SWITCH_ROLE_MASK)
19175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_MASK           0x02
19195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_OFF            5
19205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LINK_POLICY_SET_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_OFF] & HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_MASK)
19215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_MASK  0x04
19235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_OFF   5
19245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LINK_POLICY_SET_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_OFF] & HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_MASK)
19255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_MASK       0x08
19275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_OFF        5
19285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_DEF_LINK_POLICY_SET_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_OFF] & HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_MASK)
19295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_MASK    0x10
19315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_OFF     5
19325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_DEF_LINK_POLICY_SET_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_OFF] & HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_MASK)
19335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_MASK    0x20
19355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_OFF     5
19365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPECIFICATION_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_OFF] & HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_MASK)
19375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_MASK          0x40
19395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_OFF           5
19405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_EVENT_MASK_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_SET_EVENT_MASK_OFF] & HCI_SUPP_COMMANDS_SET_EVENT_MASK_MASK)
19415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_RESET_MASK          0x80
19435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_RESET_OFF           5
19445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RESET_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_RESET_OFF] & HCI_SUPP_COMMANDS_RESET_MASK)
19455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_EVENT_FILTER_MASK      0x01
19475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_EVENT_FILTER_OFF       6
19485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_EVENT_FILTER_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_SET_EVENT_FILTER_OFF] & HCI_SUPP_COMMANDS_SET_EVENT_FILTER_MASK)
19495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_FLUSH_MASK           0x02
19515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_FLUSH_OFF            6
19525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLUSH_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_FLUSH_OFF] & HCI_SUPP_COMMANDS_FLUSH_MASK)
19535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PIN_TYPE_MASK  0x04
19555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PIN_TYPE_OFF   6
19565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PIN_TYPE_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_READ_PIN_TYPE_OFF] & HCI_SUPP_COMMANDS_READ_PIN_TYPE_MASK)
19575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_MASK       0x08
19595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_OFF        6
19605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PIN_TYPE_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_OFF] & HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_MASK)
19615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_MASK    0x10
19635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_OFF     6
19645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_NEW_UNIT_KEY_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_OFF] & HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_MASK)
19655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_MASK    0x20
19675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_OFF     6
19685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_STORED_LINK_KEY_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_MASK)
19695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_MASK          0x40
19715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_OFF           6
19725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_STORED_LINK_KEY_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_MASK)
19735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_MASK          0x80
19755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_OFF           6
19765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DELETE_STORED_LINK_KEY_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_OFF] & HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_MASK)
19775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_MASK      0x01
19795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_OFF       7
19805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LOCAL_NAME_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_OFF] & HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_MASK)
19815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_NAME_MASK           0x02
19835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_NAME_OFF            7
19845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_NAME_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_NAME_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_NAME_MASK)
19855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_MASK  0x04
19875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_OFF   7
19885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CONN_ACCEPT_TOUT_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_MASK)
19895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_MASK       0x08
19915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_OFF        7
19925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_CONN_ACCEPT_TOUT_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_MASK)
19935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_TOUT_MASK    0x10
19955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_TOUT_OFF     7
19965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGE_TOUT_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_PAGE_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_TOUT_MASK)
19975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
19985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_MASK    0x20
19995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_OFF     7
20005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGE_TOUT_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_MASK)
20015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_MASK          0x40
20035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_OFF           7
20045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_SCAN_ENABLE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_OFF] & HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_MASK)
20055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_MASK          0x80
20075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_OFF           7
20085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_SCAN_ENABLE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_OFF] & HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_MASK)
20095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_MASK      0x01
20115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_OFF       8
20125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGE_SCAN_ACTIVITY_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_MASK)
20135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_MASK           0x02
20155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_OFF            8
20165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGE_SCAN_ACTIVITY_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_MASK)
20175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_MASK  0x04
20195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_OFF   8
20205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_INQURIY_SCAN_ACTIVITY_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_MASK)
20215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_MASK       0x08
20235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_OFF        8
20245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_INQURIY_SCAN_ACTIVITY_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_MASK)
20255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_MASK    0x10
20275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_OFF     8
20285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_AUTH_ENABLE_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_OFF] & HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_MASK)
20295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_MASK    0x20
20315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_OFF     8
20325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_AUTH_ENABLE_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_OFF] & HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_MASK)
20335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_MASK          0x40
20355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_OFF           8
20365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_ENCRYPT_ENABLE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_OFF] & HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_MASK)
20375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_MASK          0x80
20395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_OFF           8
20405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_ENCRYPT_ENABLE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_OFF] & HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_MASK)
20415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_MASK      0x01
20435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_OFF       9
20445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CLASS_DEVICE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_OFF] & HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_MASK)
20455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_MASK           0x02
20475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_OFF            9
20485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_CLASS_DEVICE_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_OFF] & HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_MASK)
20495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_VOICE_SETTING_MASK  0x04
20515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_VOICE_SETTING_OFF   9
20525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_VOICE_SETTING_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_READ_VOICE_SETTING_OFF] & HCI_SUPP_COMMANDS_READ_VOICE_SETTING_MASK)
20535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_MASK       0x08
20555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_OFF        9
20565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_VOICE_SETTING_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_OFF] & HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_MASK)
20575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_MASK    0x10
20595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_OFF     9
20605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_AUTO_FLUSH_TOUT_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_MASK)
20615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_MASK    0x20
20635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_OFF     9
20645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_AUTO_FLUSH_TOUT_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_MASK)
20655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_MASK          0x40
20675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_OFF           9
20685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_NUM_BROAD_RETRANS_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_OFF] & HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_MASK)
20695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_MASK          0x80
20715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_OFF           9
20725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_NUM_BROAD_RETRANS_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_OFF] & HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_MASK)
20735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_MASK      0x01
20755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_OFF       10
20765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_HOLD_MODE_ACTIVITY_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_MASK)
20775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_MASK           0x02
20795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_OFF            10
20805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_HOLD_MODE_ACTIVITY_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_OFF] & HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_MASK)
20815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_MASK  0x04
20835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_OFF   10
20845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_TRANS_PWR_LEVEL_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_OFF] & HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_MASK)
20855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_MASK       0x08
20875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_OFF        10
20885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_SYNCH_FLOW_CTRL_ENABLE_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_OFF] & HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_MASK)
20895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_MASK    0x10
20915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_OFF     10
20925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_SYNCH_FLOW_CTRL_ENABLE_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_OFF] & HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_MASK)
20935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_MASK    0x20
20955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_OFF     10
20965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_HOST_CTRLR_TO_HOST_FC_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_OFF] & HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_MASK)
20975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
20985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_MASK          0x40
20995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_OFF           10
21005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_BUFFER_SIZE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_OFF] & HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_MASK)
21015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_MASK          0x80
21035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_OFF           10
21045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_NUM_COMPLETED_PKTS_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_OFF] & HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_MASK)
21055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_MASK      0x01
21075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_OFF       11
21085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LINK_SUP_TOUT_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_MASK)
21095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_MASK           0x02
21115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_OFF            11
21125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LINK_SUP_TOUT_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_MASK)
21135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_MASK  0x04
21155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_OFF   11
21165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_NUM_SUPP_IAC_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_OFF] & HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_MASK)
21175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_MASK       0x08
21195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_OFF        11
21205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CURRENT_IAC_LAP_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_OFF] & HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_MASK)
21215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_MASK    0x10
21235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_OFF     11
21245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_CURRENT_IAC_LAP_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_OFF] & HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_MASK)
21255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_MASK    0x20
21275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_OFF     11
21285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGE_SCAN_PER_MODE_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_MASK)
21295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_MASK          0x40
21315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_OFF           11
21325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGE_SCAN_PER_MODE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_MASK)
21335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_MASK          0x80
21355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_OFF           11
21365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGE_SCAN_MODE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_MASK)
21375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_MASK      0x01
21395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_OFF       12
21405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGE_SCAN_MODE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_MASK)
21415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_MASK           0x02
21435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_OFF            12
21445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_AFH_CHNL_CLASS_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_OFF] & HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_MASK)
21455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_MASK    0x10
21475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_OFF     12
21485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_INQUIRY_SCAN_TYPE_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_OFF] & HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_MASK)
21495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_MASK    0x20
21515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_OFF     12
21525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_INQUIRY_SCAN_TYPE_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_OFF] & HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_MASK)
21535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_MASK          0x40
21555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_OFF           12
21565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_INQUIRY_MODE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_OFF] & HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_MASK)
21575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_MASK          0x80
21595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_OFF           12
21605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_INQUIRY_MODE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_MASK)
21615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_MASK      0x01
21635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_OFF       13
21645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_PAGE_SCAN_TYPE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_OFF] & HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_MASK)
21655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_MASK           0x02
21675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_OFF            13
21685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_PAGE_SCAN_TYPE_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_OFF] & HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_MASK)
21695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_MASK  0x04
21715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_OFF   13
21725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_AFH_CHNL_ASSESS_MODE_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_OFF] & HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_MASK)
21735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_MASK       0x08
21755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_OFF        13
21765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_AFH_CHNL_ASSESS_MODE_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_MASK)
21775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_MASK       0x08
21795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_OFF        14
21805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_VER_INFO_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_MASK)
21815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_MASK       0x10
21835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_OFF        14
21845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_SUP_CMDS_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_MASK)
21855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_MASK    0x20
21875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_OFF     14
21885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_SUPP_FEATURES_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_MASK)
21895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_MASK          0x40
21915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_OFF           14
21925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_EXT_FEATURES_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_MASK)
21935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_MASK          0x80
21955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_OFF           14
21965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_BUFFER_SIZE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_OFF] & HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_MASK)
21975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
21985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_MASK      0x01
21995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_OFF       15
22005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_COUNTRY_CODE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_OFF] & HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_MASK)
22015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_BD_ADDR_MASK           0x02
22035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_BD_ADDR_OFF            15
22045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_BD_ADDR_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_READ_BD_ADDR_OFF] & HCI_SUPP_COMMANDS_READ_BD_ADDR_MASK)
22055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_MASK  0x04
22075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_OFF   15
22085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_FAIL_CONTACT_CNTR_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_OFF] & HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_MASK)
22095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_MASK       0x08
22115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_OFF        15
22125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RESET_FAIL_CONTACT_CNTR_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_OFF] & HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_MASK)
22135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_GET_LINK_QUALITY_MASK    0x10
22155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_GET_LINK_QUALITY_OFF     15
22165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_GET_LINK_QUALITY_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_GET_LINK_QUALITY_OFF] & HCI_SUPP_COMMANDS_GET_LINK_QUALITY_MASK)
22175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_RSSI_MASK    0x20
22195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_RSSI_OFF     15
22205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_RSSI_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_READ_RSSI_OFF] & HCI_SUPP_COMMANDS_READ_RSSI_MASK)
22215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_MASK          0x40
22235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_OFF           15
22245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_AFH_CH_MAP_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_OFF] & HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_MASK)
22255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_BD_CLOCK_MASK          0x80
22275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_BD_CLOCK_OFF           15
22285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_BD_CLOCK_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_BD_CLOCK_OFF] & HCI_SUPP_COMMANDS_READ_BD_CLOCK_MASK)
22295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_MASK      0x01
22315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_OFF       16
22325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOOPBACK_MODE_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_OFF] & HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_MASK)
22335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_MASK           0x02
22355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_OFF            16
22365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LOOPBACK_MODE_SUPPORTED(x)           ((x)[HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_MASK)
22375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_MASK  0x04
22395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_OFF   16
22405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENABLE_DEV_UNDER_TEST_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_OFF] & HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_MASK)
22415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_MASK       0x08
22435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_OFF        16
22445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_SYNCH_CONN_SUPPORTED(x)       ((x)[HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_MASK)
22455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_MASK    0x10
22475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_OFF     16
22485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_SYNCH_CONN_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_MASK)
22495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_MASK    0x20
22515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_OFF     16
22525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REJECT_SYNCH_CONN_SUPPORTED(x)    ((x)[HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_MASK)
22535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_MASK   0x01
22555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_OFF    17
22565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_EXT_INQUIRY_RESP_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_OFF] & HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_MASK)
22575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_MASK  0x02
22595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_OFF   17
22605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_EXT_INQUIRY_RESP_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_OFF] & HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_MASK)
22615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_MASK   0x04
22635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_OFF    17
22645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REFRESH_ENCRYPTION_KEY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_OFF] & HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_MASK)
22655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Octet 17, bit 3 is reserved */
22675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_MASK       0x10
22695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_OFF        17
22705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_SUB_RATE_CMD_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_OFF] & HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_MASK)
22715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_MASK   0x20
22735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_OFF    17
22745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_SIMPLE_PAIRING_MODE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_OFF] & HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_MASK)
22755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_MASK   0x40
22775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_OFF    17
22785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_SIMPLE_PAIRING_MODE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_MASK)
22795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_MASK   0x80
22815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_OFF    17
22825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_OOB_DATA_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_MASK)
22835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_MASK   0x01
22855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_OFF    18
22865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_INQUIRY_RESPONSE_TX_POWER_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_OFF] & HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_MASK)
22875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_MASK   0x02
22895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_OFF    18
22905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_INQUIRY_RESPONSE_TX_POWER_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_OFF] & HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_MASK)
22915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK   0x04
22935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF    18
22945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF] & HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK)
22955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
22965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK   0x08
22975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF    18
22985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF] & HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK)
22995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2300899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth#define HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_MASK   0x80
2301899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth#define HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_OFF    18
2302899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth#define HCI_IO_CAPABILITY_REQUEST_REPLY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_MASK)
23035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_MASK   0x01
23055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_OFF    19
23065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_CONFIRMATION_REQUEST_REPLY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_MASK)
23075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_MASK   0x02
23095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_OFF    19
23105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_CONFIRMATION_REQUEST_NEG_REPLY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_MASK)
23115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_MASK   0x04
23135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_OFF    19
23145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_REQUEST_REPLY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_MASK)
23155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_MASK   0x08
23175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_OFF    19
23185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_REQUEST_NEG_REPLY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_MASK)
23195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_MASK   0x10
23215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_OFF    19
23225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REMOTE_OOB_DATA_REQUEST_REPLY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_MASK)
23235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_MASK       0x20
23255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_OFF        19
23265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_SIMPLE_PAIRING_DBG_MODE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_MASK)
23275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ENHANCED_FLUSH_MASK   0x40
23295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ENHANCED_FLUSH_OFF    19
23305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENHANCED_FLUSH_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_ENHANCED_FLUSH_OFF] & HCI_SUPP_COMMANDS_ENHANCED_FLUSH_MASK)
23315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_MASK       0x80
23335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_OFF        19
23345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_MASK)
23355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 20) */
23375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_MASK       0x04
23385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_OFF        20
23395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SEND_NOTIF_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_OFF] & HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_MASK)
23405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_MASK      0x08
23425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_OFF       20
23435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_REQ_NEG_REPLY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_OFF] & HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_MASK)
23445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_MASK      0x10
23465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_OFF       20
23475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_ENCR_KEY_SIZE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_OFF] & HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_MASK)
23485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 21) */
23505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_MASK   0x01
23515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_OFF    21
23525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_PHYSICAL_LINK_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_OFF] & HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_MASK)
23535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_MASK   0x02
23555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_OFF    21
23565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_PHYSICAL_LINK_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_OFF] & HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_MASK)
23575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_MASK   0x04
23595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_OFF    21
23605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISCONNECT_PHYSICAL_LINK_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_OFF] & HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_MASK)
23615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_MASK   0x08
23635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_OFF    21
23645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CREATE_LOGICAL_LINK_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_OFF] & HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_MASK)
23655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_MASK   0x10
23675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_OFF    21
23685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_LOGICAL_LINK_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_OFF] & HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_MASK)
23695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_MASK   0x20
23715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_OFF    21
23725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISCONNECT_LOGICAL_LINK_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_OFF] & HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_MASK)
23735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_MASK   0x40
23755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_OFF    21
23765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOGICAL_LINK_CANCEL_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_OFF] & HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_MASK)
23775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_MASK       0x80
23795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_OFF        21
23805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_MODIFY_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_OFF] & HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_MASK)
23815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 22) */
23835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK   0x01
23845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF    22
23855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF] & HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK)
23865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK   0x02
23885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF    22
23895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK)
23905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_MASK   0x04
23925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_OFF    22
23935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_EVENT_MASK_PAGE_2_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_OFF] & HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_MASK)
23945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCATION_DATA_MASK   0x08
23965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCATION_DATA_OFF    22
23975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCATION_DATA_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_LOCATION_DATA_OFF] & HCI_SUPP_COMMANDS_READ_LOCATION_DATA_MASK)
23985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
23995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_MASK   0x10
24005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_OFF    22
24015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_LOCATION_DATA_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_OFF] & HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_MASK)
24025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_MASK   0x20
24045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_OFF    22
24055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_AMP_INFO_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_MASK)
24065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_MASK   0x40
24085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_OFF    22
24095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_LOCAL_AMP_ASSOC_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_MASK)
24105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_MASK   0x80
24125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_OFF    22
24135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_REMOTE_AMP_ASSOC_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_OFF] & HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_MASK)
24145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 23) */
24165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_MASK   0x01
24175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_OFF    23
24185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_FLOW_CONTROL_MODE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_OFF] & HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_MASK)
24195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_MASK   0x02
24215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_OFF    23
24225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_FLOW_CONTROL_MODE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_MASK)
24235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_MASK   0x04
24255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_OFF    23
24265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_DATA_BLOCK_SIZE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_OFF] & HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_MASK)
24275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_MASK   0x20
24295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_OFF    23
24305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENABLE_AMP_RCVR_REPORTS_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_OFF] & HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_MASK)
24315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_AMP_TEST_END_MASK   0x40
24335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_AMP_TEST_END_OFF    23
24345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_TEST_END_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_AMP_TEST_END_OFF] & HCI_SUPP_COMMANDS_AMP_TEST_END_MASK)
24355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_AMP_TEST_MASK   0x80
24375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_AMP_TEST_OFF    23
24385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AMP_TEST_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_AMP_TEST_OFF] & HCI_SUPP_COMMANDS_AMP_TEST_MASK)
24395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 24) */
24415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_MASK   0x01
24425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_OFF    24
24435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_TRANSMIT_POWER_LEVEL_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_OFF] & HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_MASK)
24445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_MASK   0x04
24465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_OFF    24
24475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_BE_FLUSH_TOUT_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_MASK)
24485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_MASK   0x08
24505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_OFF    24
24515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_BE_FLUSH_TOUT_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_MASK)
24525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_MASK   0x10
24545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_OFF    24
24555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SHORT_RANGE_MODE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_OFF] & HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_MASK)
24565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
24575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* LE commands TBD
24585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Supported Commands (Byte 24 continued)
24595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Supported Commands (Byte 25)
24605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Supported Commands (Byte 26)
24615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Supported Commands (Byte 27)
24625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Supported Commands (Byte 28)
24635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/
24645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2465ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 29) */
2466ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_MASK     0x08
2467ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_OFF      29
2468ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_READ_ENH_SETUP_SYNCH_CONN_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_MASK)
2469ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2470ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_MASK    0x10
2471ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_OFF     29
2472ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_READ_ENH_ACCEPT_SYNCH_CONN_SUPPORTED(x)     ((x)[HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_OFF] & HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_MASK)
2473ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2474ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_MASK        0x20
2475ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_OFF         29
2476ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_READ_LOCAL_CODECS_SUPPORTED(x)              ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_MASK)
2477ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2478ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_MASK      0x40
2479ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_OFF       29
2480ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_CHANNEL_PARAMETERS_SUPPORTED(x)     ((x)[HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_OFF] & HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_MASK)
2481ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2482ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_MASK       0x80
2483ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_OFF        29
2484ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_EXTERNAL_FRAME_CONFIGURATION_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_OFF] & HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_MASK)
2485ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2486ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2487ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 30) */
2488ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_MASK     0x01
2489ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_OFF      30
2490ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_SIGNALING_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_OFF] & HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_MASK)
2491ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2492ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_MASK   0x02
2493ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_OFF    30
2494ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_TRANSPORT_LAYER_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_OFF] & HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_MASK)
2495ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2496ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_MASK   0x04
2497ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_OFF    30
2498ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_SCAN_FREQUENCY_TABLE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_OFF] & HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_MASK)
2499ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2500ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_MASK      0x08
2501ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_OFF    30
2502ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_GET_MWS_TRANS_LAYER_CFG_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_OFF] & HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_MASK)
2503ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2504ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_MASK      0x10
2505ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_OFF       30
2506ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_MWS_PATTERN_CONFIGURATION_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_OFF] & HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_MASK)
2507ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
25083aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Supported Commands (Byte 30 bit 5) */
25093aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_MASK         0x20
25103aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_OFF          30
25113aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach#define HCI_SET_TRIG_CLK_CAP_SUPPORTED(x)               ((x)[HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_OFF] & HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_MASK)
25123aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
25133aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach
2514ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 30 bit 6-7) */
2515ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE             0x06
2516ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_OFF         30
2517ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_TRUNCATED_PAGE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_TRUNCATED_PAGE_OFF] & HCI_SUPP_COMMANDS_TRUNCATED_PAGE)
2518ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2519ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL             0x07
2520ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL_OFF         30
2521ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_TRUNCATED_PAGE_CANCEL_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL_OFF] & HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL)
2522ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2523ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 31 bit 6-7) */
2524ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST             0x00
2525ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_OFF         31
2526ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_CONLESS_SLAVE_BRCST_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_OFF] & HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST)
2527ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2528ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE             0x01
2529ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE_OFF         31
2530ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_CONLESS_SLAVE_BRCST_RECEIVE_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE_OFF] & HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE)
2531ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2532ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_START_SYNC_TRAIN             0x02
2533ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_START_SYNC_TRAIN_OFF         31
2534ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_START_SYNC_TRAIN_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_START_SYNC_TRAIN_OFF] & HCI_SUPP_COMMANDS_START_SYNC_TRAIN)
2535ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2536ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN             0x03
2537ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN_OFF         31
2538ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_RECEIVE_SYNC_TRAIN_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN_OFF] & HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN)
2539ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2540ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR             0x04
2541ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR_OFF         31
2542ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_RESERVED_LT_ADDR_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR_OFF] & HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR)
2543ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2544ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR             0x05
2545ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR_OFF         31
2546ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_DELETE_RESERVED_LT_ADDR_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR_OFF] & HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR)
2547ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2548ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA             0x06
2549ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA_OFF         31
2550ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SET_CONLESS_SLAVE_BRCST_DATA_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA_OFF] & HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA)
2551ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2552ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM             0x07
2553ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM_OFF         31
2554ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_READ_SYNC_TRAIN_PARAM_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM_OFF] & HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM)
2555ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
2556ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 32 bit 0) */
2557ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM             0x00
2558ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM_OFF         32
2559ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_WRITE_SYNC_TRAIN_PARAM_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM_OFF] & HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM)
2560ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
25617fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_MASK   0x02
25627fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_OFF    32
25637fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_OFF] & HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_MASK)
25647fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
25657fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_MASK    0x04
25667fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_OFF     32
25677fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_READ_SECURE_CONNS_SUPPORT_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_OFF] & HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_MASK)
25687fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
25697fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_MASK   0x08
25707fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_OFF    32
25717fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_WRITE_SECURE_CONNS_SUPPORT_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_OFF] & HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_MASK)
25727fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
25737fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_MASK    0x10
25747fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_OFF     32
25757fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_READ_AUTHENT_PAYLOAD_TOUT_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_OFF] & HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_MASK)
25767fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
25777fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_MASK   0x20
25787fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_OFF    32
25797fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_WRITE_AUTHENT_PAYLOAD_TOUT_SUPPORTED(x)  ((x)[HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_OFF] & HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_MASK)
25807fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
25817fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_MASK 0x40
25827fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_OFF  32
25837fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_READ_LOCAL_OOB_EXTENDED_DATA_SUPPORTED(x)   ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_OFF] & HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_MASK)
25847fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta
25857fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_MASK   0x80
25867fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_OFF    32
25877fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE_SUPPORTED(x) ((x)[HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_OFF] & HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_MASK)
2588ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
25897fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* supported LE remote control connection parameter request reply */
25907fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_MASK          0x10
25917fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_OFF           33
25927fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_RC_CONN_PARAM_UPD_RPY_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_OFF] & HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_MASK)
2593ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
25947fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_RLE_RC_CONN_PARAM_UPD_NEG_RPY_MASK          0x20
25957fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_NEG_RPY_OFF           33
25967fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_LE_RC_CONN_PARAM_UPD_NEG_RPY_SUPPORTED(x)      ((x)[HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_NEG_RPY_OFF] & HCI_SUPP_COMMANDS_RLE_RC_CONN_PARAM_UPD_NEG_RPY_MASK)
2597ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta
25985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif
25995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project
2600