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