hcidefs.h revision 8e774d1c533dde1b0775aa61933b24eef2213de4
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 22911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PROTO_VERSION 0x01 /* Version for BT spec 1.1 */ 23911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PROTO_VERSION_1_2 0x02 /* Version for BT spec 1.2 */ 24911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PROTO_VERSION_2_0 0x03 /* Version for BT spec 2.0 */ 25911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PROTO_VERSION_2_1 0x04 /* Version for BT spec 2.1 [Lisbon] */ 26911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PROTO_VERSION_3_0 0x05 /* Version for BT spec 3.0 */ 27911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PROTO_VERSION_4_0 0x06 /* Version for BT spec 4.0 */ 28911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PROTO_VERSION_4_1 0x07 /* Version for BT spec 4.1 */ 29911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PROTO_VERSION_4_2 0x08 /* Version for BT spec 4.2 */ 30879aeec72706fc7bae66277350ae9a49648a73e7Andre Eisenbach 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 32ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Definitions for HCI groups 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 34911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GRP_LINK_CONTROL_CMDS (0x01 << 10) /* 0x0400 */ 35911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GRP_LINK_POLICY_CMDS (0x02 << 10) /* 0x0800 */ 36911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GRP_HOST_CONT_BASEBAND_CMDS (0x03 << 10) /* 0x0C00 */ 37911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GRP_INFORMATIONAL_PARAMS (0x04 << 10) /* 0x1000 */ 38911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GRP_STATUS_PARAMS (0x05 << 10) /* 0x1400 */ 39911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GRP_TESTING_CMDS (0x06 << 10) /* 0x1800 */ 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 41911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GRP_VENDOR_SPECIFIC (0x3F << 10) /* 0xFC00 */ 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Group occupies high 6 bits of the HCI command rest is opcode itself */ 44911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_OGF(p) (uint8_t)((0xFC00 & (p)) >> 10) 45911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_OCF(p) (0x3FF & (p)) 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 48ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Definitions for Link Control Commands 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Following opcode is used only in command complete event for flow control */ 51911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_COMMAND_NONE 0x0000 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_LINK_CONTROL_CMDS group */ 54911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY (0x0001 | HCI_GRP_LINK_CONTROL_CMDS) 55911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_CANCEL (0x0002 | HCI_GRP_LINK_CONTROL_CMDS) 56911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PERIODIC_INQUIRY_MODE (0x0003 | HCI_GRP_LINK_CONTROL_CMDS) 57911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXIT_PERIODIC_INQUIRY_MODE (0x0004 | HCI_GRP_LINK_CONTROL_CMDS) 58911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_CONNECTION (0x0005 | HCI_GRP_LINK_CONTROL_CMDS) 59911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISCONNECT (0x0006 | HCI_GRP_LINK_CONTROL_CMDS) 60911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ADD_SCO_CONNECTION (0x0007 | HCI_GRP_LINK_CONTROL_CMDS) 61911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_CONNECTION_CANCEL (0x0008 | HCI_GRP_LINK_CONTROL_CMDS) 62911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACCEPT_CONNECTION_REQUEST (0x0009 | HCI_GRP_LINK_CONTROL_CMDS) 63911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REJECT_CONNECTION_REQUEST (0x000A | HCI_GRP_LINK_CONTROL_CMDS) 64911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_KEY_REQUEST_REPLY (0x000B | HCI_GRP_LINK_CONTROL_CMDS) 65911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_KEY_REQUEST_NEG_REPLY (0x000C | HCI_GRP_LINK_CONTROL_CMDS) 66911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PIN_CODE_REQUEST_REPLY (0x000D | HCI_GRP_LINK_CONTROL_CMDS) 67911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PIN_CODE_REQUEST_NEG_REPLY (0x000E | HCI_GRP_LINK_CONTROL_CMDS) 68911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANGE_CONN_PACKET_TYPE (0x000F | HCI_GRP_LINK_CONTROL_CMDS) 69911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AUTHENTICATION_REQUESTED (0x0011 | HCI_GRP_LINK_CONTROL_CMDS) 70911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_CONN_ENCRYPTION (0x0013 | HCI_GRP_LINK_CONTROL_CMDS) 71911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANGE_CONN_LINK_KEY (0x0015 | HCI_GRP_LINK_CONTROL_CMDS) 72911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MASTER_LINK_KEY (0x0017 | HCI_GRP_LINK_CONTROL_CMDS) 73911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RMT_NAME_REQUEST (0x0019 | HCI_GRP_LINK_CONTROL_CMDS) 74911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RMT_NAME_REQUEST_CANCEL (0x001A | HCI_GRP_LINK_CONTROL_CMDS) 75911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_FEATURES (0x001B | HCI_GRP_LINK_CONTROL_CMDS) 76911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_EXT_FEATURES (0x001C | HCI_GRP_LINK_CONTROL_CMDS) 77911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_VERSION_INFO (0x001D | HCI_GRP_LINK_CONTROL_CMDS) 78911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_CLOCK_OFFSET (0x001F | HCI_GRP_LINK_CONTROL_CMDS) 79911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LMP_HANDLE (0x0020 | HCI_GRP_LINK_CONTROL_CMDS) 80911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SETUP_ESCO_CONNECTION (0x0028 | HCI_GRP_LINK_CONTROL_CMDS) 81911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACCEPT_ESCO_CONNECTION (0x0029 | HCI_GRP_LINK_CONTROL_CMDS) 82911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REJECT_ESCO_CONNECTION (0x002A | HCI_GRP_LINK_CONTROL_CMDS) 83899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth#define HCI_IO_CAPABILITY_REQUEST_REPLY (0x002B | HCI_GRP_LINK_CONTROL_CMDS) 84911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_CONF_REQUEST_REPLY (0x002C | HCI_GRP_LINK_CONTROL_CMDS) 85911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_CONF_VALUE_NEG_REPLY (0x002D | HCI_GRP_LINK_CONTROL_CMDS) 86911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_PASSKEY_REQ_REPLY (0x002E | HCI_GRP_LINK_CONTROL_CMDS) 87911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_PASSKEY_REQ_NEG_REPLY (0x002F | HCI_GRP_LINK_CONTROL_CMDS) 88911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REM_OOB_DATA_REQ_REPLY (0x0030 | HCI_GRP_LINK_CONTROL_CMDS) 89911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REM_OOB_DATA_REQ_NEG_REPLY (0x0033 | HCI_GRP_LINK_CONTROL_CMDS) 90911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAP_REQ_NEG_REPLY (0x0034 | HCI_GRP_LINK_CONTROL_CMDS) 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP HCI */ 93911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_PHYSICAL_LINK (0x0035 | HCI_GRP_LINK_CONTROL_CMDS) 94911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACCEPT_PHYSICAL_LINK (0x0036 | HCI_GRP_LINK_CONTROL_CMDS) 95911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISCONNECT_PHYSICAL_LINK (0x0037 | HCI_GRP_LINK_CONTROL_CMDS) 96911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_LOGICAL_LINK (0x0038 | HCI_GRP_LINK_CONTROL_CMDS) 97911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACCEPT_LOGICAL_LINK (0x0039 | HCI_GRP_LINK_CONTROL_CMDS) 98911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISCONNECT_LOGICAL_LINK (0x003A | HCI_GRP_LINK_CONTROL_CMDS) 99911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LOGICAL_LINK_CANCEL (0x003B | HCI_GRP_LINK_CONTROL_CMDS) 100911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLOW_SPEC_MODIFY (0x003C | HCI_GRP_LINK_CONTROL_CMDS) 101911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 102911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENH_SETUP_ESCO_CONNECTION (0x003D | HCI_GRP_LINK_CONTROL_CMDS) 103911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENH_ACCEPT_ESCO_CONNECTION (0x003E | HCI_GRP_LINK_CONTROL_CMDS) 104ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 105ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* ConnectionLess Broadcast */ 106911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_TRUNCATED_PAGE (0x003F | HCI_GRP_LINK_CONTROL_CMDS) 107911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_TRUNCATED_PAGE_CANCEL (0x0040 | HCI_GRP_LINK_CONTROL_CMDS) 108911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_CLB (0x0041 | HCI_GRP_LINK_CONTROL_CMDS) 109911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RECEIVE_CLB (0x0042 | HCI_GRP_LINK_CONTROL_CMDS) 110911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_START_SYNC_TRAIN (0x0043 | HCI_GRP_LINK_CONTROL_CMDS) 111911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RECEIVE_SYNC_TRAIN (0x0044 | HCI_GRP_LINK_CONTROL_CMDS) 112ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 113911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_CTRL_CMDS_FIRST HCI_INQUIRY 114911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_CTRL_CMDS_LAST HCI_RECEIVE_SYNC_TRAIN 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_LINK_POLICY_CMDS */ 117911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HOLD_MODE (0x0001 | HCI_GRP_LINK_POLICY_CMDS) 118911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SNIFF_MODE (0x0003 | HCI_GRP_LINK_POLICY_CMDS) 119911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXIT_SNIFF_MODE (0x0004 | HCI_GRP_LINK_POLICY_CMDS) 120911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PARK_MODE (0x0005 | HCI_GRP_LINK_POLICY_CMDS) 121911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXIT_PARK_MODE (0x0006 | HCI_GRP_LINK_POLICY_CMDS) 122911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_QOS_SETUP (0x0007 | HCI_GRP_LINK_POLICY_CMDS) 123911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ROLE_DISCOVERY (0x0009 | HCI_GRP_LINK_POLICY_CMDS) 124911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SWITCH_ROLE (0x000B | HCI_GRP_LINK_POLICY_CMDS) 125911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_POLICY_SETTINGS (0x000C | HCI_GRP_LINK_POLICY_CMDS) 126911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_POLICY_SETTINGS (0x000D | HCI_GRP_LINK_POLICY_CMDS) 127911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_DEF_POLICY_SETTINGS (0x000E | HCI_GRP_LINK_POLICY_CMDS) 128911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_DEF_POLICY_SETTINGS (0x000F | HCI_GRP_LINK_POLICY_CMDS) 129911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLOW_SPECIFICATION (0x0010 | HCI_GRP_LINK_POLICY_CMDS) 130911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SNIFF_SUB_RATE (0x0011 | HCI_GRP_LINK_POLICY_CMDS) 131911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 132911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_POLICY_CMDS_FIRST HCI_HOLD_MODE 133911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_POLICY_CMDS_LAST HCI_SNIFF_SUB_RATE 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_HOST_CONT_BASEBAND_CMDS */ 136911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_EVENT_MASK (0x0001 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 137911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RESET (0x0003 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 138911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_EVENT_FILTER (0x0005 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 139911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLUSH (0x0008 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 140911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PIN_TYPE (0x0009 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 141911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PIN_TYPE (0x000A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 142911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_NEW_UNIT_KEY (0x000B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 143911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GET_MWS_TRANS_LAYER_CFG (0x000C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 144911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_STORED_LINK_KEY (0x000D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 145911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_STORED_LINK_KEY (0x0011 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 146911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DELETE_STORED_LINK_KEY (0x0012 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 147911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANGE_LOCAL_NAME (0x0013 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 148911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_NAME (0x0014 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 149911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CONN_ACCEPT_TOUT (0x0015 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 150911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_CONN_ACCEPT_TOUT (0x0016 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 151911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGE_TOUT (0x0017 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 152911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGE_TOUT (0x0018 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 153911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SCAN_ENABLE (0x0019 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 154911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SCAN_ENABLE (0x001A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 155911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGESCAN_CFG (0x001B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 156911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGESCAN_CFG (0x001C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 157911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_INQUIRYSCAN_CFG (0x001D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 158911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_INQUIRYSCAN_CFG (0x001E | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 159911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AUTHENTICATION_ENABLE \ 160911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x001F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 161911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_AUTHENTICATION_ENABLE \ 162911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x0020 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 163911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_ENCRYPTION_MODE (0x0021 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 164911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_ENCRYPTION_MODE (0x0022 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 165911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CLASS_OF_DEVICE (0x0023 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 166911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_CLASS_OF_DEVICE (0x0024 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 167911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_VOICE_SETTINGS (0x0025 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 168911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_VOICE_SETTINGS (0x0026 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 169911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AUTO_FLUSH_TOUT (0x0027 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 170911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_AUTO_FLUSH_TOUT (0x0028 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 171911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_NUM_BCAST_REXMITS (0x0029 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 172911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_NUM_BCAST_REXMITS (0x002A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 173911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_HOLD_MODE_ACTIVITY (0x002B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 174911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_HOLD_MODE_ACTIVITY (0x002C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 175911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_TRANSMIT_POWER_LEVEL (0x002D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 176911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SCO_FLOW_CTRL_ENABLE (0x002E | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 177911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SCO_FLOW_CTRL_ENABLE \ 178911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x002F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 179911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_HC_TO_HOST_FLOW_CTRL (0x0031 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 180911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HOST_BUFFER_SIZE (0x0033 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 181911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HOST_NUM_PACKETS_DONE (0x0035 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 182911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LINK_SUPER_TOUT (0x0036 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 183911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LINK_SUPER_TOUT (0x0037 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 184911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_NUM_SUPPORTED_IAC (0x0038 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 185911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CURRENT_IAC_LAP (0x0039 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 186911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_CURRENT_IAC_LAP (0x003A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 187911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGESCAN_PERIOD_MODE (0x003B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 188911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGESCAN_PERIOD_MODE \ 189911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x003C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 190911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGESCAN_MODE (0x003D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 191911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGESCAN_MODE (0x003E | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 192911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_AFH_CHANNELS (0x003F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 193911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 194911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_INQSCAN_TYPE (0x0042 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 195911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_INQSCAN_TYPE (0x0043 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 196911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_INQUIRY_MODE (0x0044 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 197911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_INQUIRY_MODE (0x0045 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 198911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGESCAN_TYPE (0x0046 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 199911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGESCAN_TYPE (0x0047 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 200911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AFH_ASSESSMENT_MODE (0x0048 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 201911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_AFH_ASSESSMENT_MODE (0x0049 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 202911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_EXT_INQ_RESPONSE (0x0051 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 203911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_EXT_INQ_RESPONSE (0x0052 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 204911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REFRESH_ENCRYPTION_KEY (0x0053 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 205911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SIMPLE_PAIRING_MODE (0x0055 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 206911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SIMPLE_PAIRING_MODE (0x0056 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 207911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_OOB_DATA (0x0057 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 208911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_INQ_TX_POWER_LEVEL (0x0058 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 209911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_INQ_TX_POWER_LEVEL (0x0059 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 210911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_ERRONEOUS_DATA_RPT (0x005A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 211911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_ERRONEOUS_DATA_RPT (0x005B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 212911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENHANCED_FLUSH (0x005F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 213911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SEND_KEYPRESS_NOTIF (0x0060 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP HCI */ 216911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT \ 217911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x0061 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 218911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT \ 219911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x0062 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 220911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_EVENT_MASK_PAGE_2 (0x0063 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 221911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCATION_DATA (0x0064 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 222911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LOCATION_DATA (0x0065 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 223911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_FLOW_CONTROL_MODE (0x0066 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 224911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_FLOW_CONTROL_MODE (0x0067 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 225911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_BE_FLUSH_TOUT (0x0069 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 226911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_BE_FLUSH_TOUT (0x006A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 2279ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* 802.11 only */ 228911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SHORT_RANGE_MODE (0x006B | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 229911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LE_HOST_SUPPORT (0x006C | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 230911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LE_HOST_SUPPORT (0x006D | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 231ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 232ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* MWS coexistence */ 233911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_CHANNEL_PARAMETERS \ 234911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x006E | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 235911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_EXTERNAL_FRAME_CONFIGURATION \ 236911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x006F | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 237911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_SIGNALING (0x0070 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 238911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_TRANSPORT_LAYER (0x0071 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 239911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_SCAN_FREQUENCY_TABLE \ 240911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x0072 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 241911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_PATTERN_CONFIGURATION \ 242911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x0073 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 243ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 244899b77140675a157dba034e98527ab546bc9ac35Mudumba Ananth/* Connectionless Broadcast */ 245911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_RESERVED_LT_ADDR (0x0074 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 246911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DELETE_RESERVED_LT_ADDR (0x0075 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 247911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_CLB_DATA (0x0076 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 248911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SYNC_TRAIN_PARAM (0x0077 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 249911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SYNC_TRAIN_PARAM (0x0078 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 250911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 251911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SECURE_CONNS_SUPPORT (0x0079 | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 252911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SECURE_CONNS_SUPPORT \ 253911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0x007A | HCI_GRP_HOST_CONT_BASEBAND_CMDS) 254911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONT_BASEBAND_CMDS_FIRST HCI_SET_EVENT_MASK 255911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONT_BASEBAND_CMDS_LAST HCI_READ_SYNC_TRAIN_PARAM 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_INFORMATIONAL_PARAMS group */ 258911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_VERSION_INFO (0x0001 | HCI_GRP_INFORMATIONAL_PARAMS) 259911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_SUPPORTED_CMDS (0x0002 | HCI_GRP_INFORMATIONAL_PARAMS) 260911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_FEATURES (0x0003 | HCI_GRP_INFORMATIONAL_PARAMS) 261911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_EXT_FEATURES (0x0004 | HCI_GRP_INFORMATIONAL_PARAMS) 262911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_BUFFER_SIZE (0x0005 | HCI_GRP_INFORMATIONAL_PARAMS) 263911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_COUNTRY_CODE (0x0007 | HCI_GRP_INFORMATIONAL_PARAMS) 264911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_BD_ADDR (0x0009 | HCI_GRP_INFORMATIONAL_PARAMS) 265911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_DATA_BLOCK_SIZE (0x000A | HCI_GRP_INFORMATIONAL_PARAMS) 266ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_READ_LOCAL_SUPPORTED_CODECS (0x000B | HCI_GRP_INFORMATIONAL_PARAMS) 2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 268911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INFORMATIONAL_CMDS_FIRST HCI_READ_LOCAL_VERSION_INFO 269911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INFORMATIONAL_CMDS_LAST HCI_READ_LOCAL_SUPPORTED_CODECS 2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_STATUS_PARAMS group */ 272911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_FAILED_CONTACT_COUNT (0x0001 | HCI_GRP_STATUS_PARAMS) 273911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RESET_FAILED_CONTACT_COUNT (0x0002 | HCI_GRP_STATUS_PARAMS) 274911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GET_LINK_QUALITY (0x0003 | HCI_GRP_STATUS_PARAMS) 275911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RSSI (0x0005 | HCI_GRP_STATUS_PARAMS) 276911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AFH_CH_MAP (0x0006 | HCI_GRP_STATUS_PARAMS) 277911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CLOCK (0x0007 | HCI_GRP_STATUS_PARAMS) 278911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_ENCR_KEY_SIZE (0x0008 | HCI_GRP_STATUS_PARAMS) 2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP HCI */ 281911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_AMP_INFO (0x0009 | HCI_GRP_STATUS_PARAMS) 282911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_AMP_ASSOC (0x000A | HCI_GRP_STATUS_PARAMS) 283911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_REMOTE_AMP_ASSOC (0x000B | HCI_GRP_STATUS_PARAMS) 2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 285911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_STATUS_PARAMS_CMDS_FIRST HCI_READ_FAILED_CONTACT_COUNT 286911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_STATUS_PARAMS_CMDS_LAST HCI_WRITE_REMOTE_AMP_ASSOC 2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of HCI_GRP_TESTING_CMDS group */ 289911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOOPBACK_MODE (0x0001 | HCI_GRP_TESTING_CMDS) 290911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LOOPBACK_MODE (0x0002 | HCI_GRP_TESTING_CMDS) 291911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENABLE_DEV_UNDER_TEST_MODE (0x0003 | HCI_GRP_TESTING_CMDS) 292911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SIMP_PAIR_DEBUG_MODE (0x0004 | HCI_GRP_TESTING_CMDS) 2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP HCI */ 295911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENABLE_AMP_RCVR_REPORTS (0x0007 | HCI_GRP_TESTING_CMDS) 296911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_TEST_END (0x0008 | HCI_GRP_TESTING_CMDS) 297911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_TEST (0x0009 | HCI_GRP_TESTING_CMDS) 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 299911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_TESTING_CMDS_FIRST HCI_READ_LOOPBACK_MODE 300911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_TESTING_CMDS_LAST HCI_AMP_TEST 3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 302911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VENDOR_CMDS_FIRST 0x0001 303911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VENDOR_CMDS_LAST 0xFFFF 304911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VSC_MULTI_AV_HANDLE 0x0AAA 305911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VSC_BURST_MODE_HANDLE 0x0BBB 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* BLE HCI */ 308911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GRP_BLE_CMDS (0x08 << 10) 3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Commands of BLE Controller setup and configuration */ 310911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_SET_EVENT_MASK (0x0001 | HCI_GRP_BLE_CMDS) 311911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_BUFFER_SIZE (0x0002 | HCI_GRP_BLE_CMDS) 312911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_LOCAL_SPT_FEAT (0x0003 | HCI_GRP_BLE_CMDS) 313911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_LOCAL_SPT_FEAT (0x0004 | HCI_GRP_BLE_CMDS) 314911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_RANDOM_ADDR (0x0005 | HCI_GRP_BLE_CMDS) 315911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_ADV_PARAMS (0x0006 | HCI_GRP_BLE_CMDS) 316911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_ADV_CHNL_TX_POWER (0x0007 | HCI_GRP_BLE_CMDS) 317911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_ADV_DATA (0x0008 | HCI_GRP_BLE_CMDS) 318911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_SCAN_RSP_DATA (0x0009 | HCI_GRP_BLE_CMDS) 319911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_ADV_ENABLE (0x000A | HCI_GRP_BLE_CMDS) 320911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_SCAN_PARAMS (0x000B | HCI_GRP_BLE_CMDS) 321911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_SCAN_ENABLE (0x000C | HCI_GRP_BLE_CMDS) 322911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_CREATE_LL_CONN (0x000D | HCI_GRP_BLE_CMDS) 323911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_CREATE_CONN_CANCEL (0x000E | HCI_GRP_BLE_CMDS) 324911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_WHITE_LIST_SIZE (0x000F | HCI_GRP_BLE_CMDS) 325911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_CLEAR_WHITE_LIST (0x0010 | HCI_GRP_BLE_CMDS) 326911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_ADD_WHITE_LIST (0x0011 | HCI_GRP_BLE_CMDS) 327911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_REMOVE_WHITE_LIST (0x0012 | HCI_GRP_BLE_CMDS) 328911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_UPD_LL_CONN_PARAMS (0x0013 | HCI_GRP_BLE_CMDS) 329911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_SET_HOST_CHNL_CLASS (0x0014 | HCI_GRP_BLE_CMDS) 330911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_CHNL_MAP (0x0015 | HCI_GRP_BLE_CMDS) 331911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_REMOTE_FEAT (0x0016 | HCI_GRP_BLE_CMDS) 332911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_ENCRYPT (0x0017 | HCI_GRP_BLE_CMDS) 333911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_RAND (0x0018 | HCI_GRP_BLE_CMDS) 334911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_START_ENC (0x0019 | HCI_GRP_BLE_CMDS) 335911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_LTK_REQ_REPLY (0x001A | HCI_GRP_BLE_CMDS) 336911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_LTK_REQ_NEG_REPLY (0x001B | HCI_GRP_BLE_CMDS) 337911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_SUPPORTED_STATES (0x001C | HCI_GRP_BLE_CMDS) 338911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson/* 0x001D, 0x001E and 0x001F are reserved */ 339911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_RECEIVER_TEST (0x001D | HCI_GRP_BLE_CMDS) 340911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_TRANSMITTER_TEST (0x001E | HCI_GRP_BLE_CMDS) 341444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* BLE TEST COMMANDS */ 342911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_TEST_END (0x001F | HCI_GRP_BLE_CMDS) 343911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_RC_PARAM_REQ_REPLY (0x0020 | HCI_GRP_BLE_CMDS) 344911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_RC_PARAM_REQ_NEG_REPLY (0x0021 | HCI_GRP_BLE_CMDS) 345911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 346911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_SET_DATA_LENGTH (0x0022 | HCI_GRP_BLE_CMDS) 347911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_DEFAULT_DATA_LENGTH (0x0023 | HCI_GRP_BLE_CMDS) 348911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_WRITE_DEFAULT_DATA_LENGTH (0x0024 | HCI_GRP_BLE_CMDS) 349911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 350911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_ADD_DEV_RESOLVING_LIST (0x0027 | HCI_GRP_BLE_CMDS) 351911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_RM_DEV_RESOLVING_LIST (0x0028 | HCI_GRP_BLE_CMDS) 352911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_CLEAR_RESOLVING_LIST (0x0029 | HCI_GRP_BLE_CMDS) 353911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_RESOLVING_LIST_SIZE (0x002A | HCI_GRP_BLE_CMDS) 354911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_RESOLVABLE_ADDR_PEER (0x002B | HCI_GRP_BLE_CMDS) 355911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_RESOLVABLE_ADDR_LOCAL (0x002C | HCI_GRP_BLE_CMDS) 356911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_SET_ADDR_RESOLUTION_ENABLE (0x002D | HCI_GRP_BLE_CMDS) 357911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_SET_RAND_PRIV_ADDR_TIMOUT (0x002E | HCI_GRP_BLE_CMDS) 3587fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 3595af96d3fda59989740f694cf7683d55f66057cf4Jakub Pawlowski#define HCI_LE_SET_EXT_ADVERTISING_RANDOM_ADDRESS (0x35 | HCI_GRP_BLE_CMDS) 3605af96d3fda59989740f694cf7683d55f66057cf4Jakub Pawlowski#define HCI_LE_SET_EXT_ADVERTISING_PARAM (0x36 | HCI_GRP_BLE_CMDS) 3615af96d3fda59989740f694cf7683d55f66057cf4Jakub Pawlowski#define HCI_LE_SET_EXT_ADVERTISING_DATA (0x37 | HCI_GRP_BLE_CMDS) 3625af96d3fda59989740f694cf7683d55f66057cf4Jakub Pawlowski#define HCI_LE_SET_EXT_ADVERTISING_SCAN_RESP (0x38 | HCI_GRP_BLE_CMDS) 3635af96d3fda59989740f694cf7683d55f66057cf4Jakub Pawlowski#define HCI_LE_SET_EXT_ADVERTISING_ENABLE (0x39 | HCI_GRP_BLE_CMDS) 3641f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski#define HCI_LE_READ_MAXIMUM_ADVERTISING_DATA_LENGTH (0x003A | HCI_GRP_BLE_CMDS) 3651f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski#define HCI_LE_READ_NUMBER_OF_SUPPORTED_ADVERTISING_SETS \ 3661f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski (0x003B | HCI_GRP_BLE_CMDS) 3678e774d1c533dde1b0775aa61933b24eef2213de4Lakshmipathi K#define HCI_LE_REMOVE_ADVERTISING_SET (0x003C | HCI_GRP_BLE_CMDS) 3688e774d1c533dde1b0775aa61933b24eef2213de4Lakshmipathi K#define HCI_LE_CLEAR_ADVERTISING_SETS (0x003D | HCI_GRP_BLE_CMDS) 3698e774d1c533dde1b0775aa61933b24eef2213de4Lakshmipathi K#define HCI_LE_SET_PERIODIC_ADVERTISING_PARAM (0x003E | HCI_GRP_BLE_CMDS) 3708e774d1c533dde1b0775aa61933b24eef2213de4Lakshmipathi K#define HCI_LE_SET_PERIODIC_ADVERTISING_DATA (0x003F | HCI_GRP_BLE_CMDS) 3718e774d1c533dde1b0775aa61933b24eef2213de4Lakshmipathi K#define HCI_LE_SET_PERIODIC_ADVERTISING_ENABLE (0x0040 | HCI_GRP_BLE_CMDS) 3729df2a552f7df99d79e1602781b37f6a6380fc71cJakub Pawlowski#define HCI_LE_SET_EXTENDED_SCAN_PARAMETERS (0x0041 | HCI_GRP_BLE_CMDS) 3739df2a552f7df99d79e1602781b37f6a6380fc71cJakub Pawlowski#define HCI_LE_SET_EXTENDED_SCAN_ENABLE (0x0042 | HCI_GRP_BLE_CMDS) 37493df860536b5a2a901248a7ae7319aabff2624dfJakub Pawlowski#define HCI_LE_EXTENDED_CREATE_CONNECTION (0x0043 | HCI_GRP_BLE_CMDS) 3751f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski 376a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* LE Get Vendor Capabilities Command OCF */ 377911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_VENDOR_CAP_OCF (0x0153 | HCI_GRP_VENDOR_SPECIFIC) 378a6ce7751d84218c193eb90d390aef23217b1737eWei Wang 379a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* Multi adv OCF */ 380911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_MULTI_ADV_OCF (0x0154 | HCI_GRP_VENDOR_SPECIFIC) 381a6ce7751d84218c193eb90d390aef23217b1737eWei Wang 382c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* Batch scan OCF */ 383911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_BATCH_SCAN_OCF (0x0156 | HCI_GRP_VENDOR_SPECIFIC) 384c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 3851a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji/* ADV filter OCF */ 386911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_ADV_FILTER_OCF (0x0157 | HCI_GRP_VENDOR_SPECIFIC) 3871a9247a1229aa65b3d1dce16426177bc5828e54dSatya Calloji 388c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* Tracking OCF */ 389911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_TRACK_ADV_OCF (0x0158 | HCI_GRP_VENDOR_SPECIFIC) 390c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 391e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji/* Energy info OCF */ 392911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_ENERGY_INFO_OCF (0x0159 | HCI_GRP_VENDOR_SPECIFIC) 393e5ba8841cd39e17c05aeb4ab65b5b761d41577daSatya Calloji 394979e3421c8111a56ebfcf176f6383df58eed52eaAndre Eisenbach/* Extended BLE Scan parameters OCF */ 395911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_EXTENDED_SCAN_PARAMS_OCF (0x015A | HCI_GRP_VENDOR_SPECIFIC) 396979e3421c8111a56ebfcf176f6383df58eed52eaAndre Eisenbach 397ca58b09a9129e334f116b7bbdfc0a3834afa299eSatya Calloji/* Controller debug info OCF */ 398911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONTROLLER_DEBUG_INFO_OCF (0x015B | HCI_GRP_VENDOR_SPECIFIC) 399ca58b09a9129e334f116b7bbdfc0a3834afa299eSatya Calloji 400a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* subcode for multi adv feature */ 401911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_MULTI_ADV_SET_PARAM 0x01 402911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_MULTI_ADV_WRITE_ADV_DATA 0x02 403911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_MULTI_ADV_WRITE_SCAN_RSP_DATA 0x03 404911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_MULTI_ADV_SET_RANDOM_ADDR 0x04 405911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_MULTI_ADV_ENB 0x05 406a6ce7751d84218c193eb90d390aef23217b1737eWei Wang 407a6ce7751d84218c193eb90d390aef23217b1737eWei Wang/* multi adv VSE subcode */ 4089ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* multi adv instance state change */ 409911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VSE_SUBCODE_BLE_MULTI_ADV_ST_CHG 0x55 410a6ce7751d84218c193eb90d390aef23217b1737eWei Wang 411c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* subcode for batch scan feature */ 412911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_BATCH_SCAN_ENB_DISAB_CUST_FEATURE 0x01 413911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_BATCH_SCAN_SET_STORAGE_PARAM 0x02 414911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_BATCH_SCAN_SET_PARAMS 0x03 415911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define BTM_BLE_BATCH_SCAN_READ_RESULTS 0x04 416c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 417c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* batch scan VSE subcode */ 418911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VSE_SUBCODE_BLE_THRESHOLD_SUB_EVT 0x54 /* Threshold event */ 419c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 420c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji/* tracking sub event */ 421911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VSE_SUBCODE_BLE_TRACKING_SUB_EVT 0x56 /* Tracking event */ 422c4e2596a112a0dd63ac681b1226548c0f95e828cSatya Calloji 4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* LE supported states definition */ 424911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_ADV_STATE 0x00000001 425911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_SCAN_STATE 0x00000002 426911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_INIT_STATE 0x00000004 427911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_CONN_SL_STATE 0x00000008 428911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_ADV_SCAN_STATE 0x00000010 429911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_ADV_INIT_STATE 0x00000020 430911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_ADV_MA_STATE 0x00000040 431911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_ADV_SL_STATE 0x00000080 432911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_SCAN_INIT_STATE 0x00000100 433911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_SCAN_MA_STATE 0x00000200 434911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_SCAN_SL_STATE 0x00000400 435911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_INIT_MA_STATE 0x00000800 4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* LE Supported States */ 4387fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Non Connectable Adv state is supported. 0x0000000000000001 */ 439911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASK 0x01 440911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_OFF 0 441911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_NON_CONN_ADV_SUPPORTED(x) \ 442911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_OFF] & \ 443911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_NON_CONN_ADV_MASK) 4447fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4459ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Scanneable Connectable Adv state is supported. 0x0000000000000002 */ 446911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_MASK 0x02 447911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATESSCAN_ADV_OFF 0 448911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_SCAN_ADV_SUPPORTED(x) \ 449911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATESSCAN_ADV_OFF] & HCI_SUPP_LE_STATES_SCAN_ADV_MASK) 4507fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4517fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connectable Adv state is supported. 0x0000000000000004 */ 452911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_MASK 0x04 453911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_OFF 0 454911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_CONN_ADV_SUPPORTED(x) \ 455911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_CONN_ADV_OFF] & HCI_SUPP_LE_STATES_CONN_ADV_MASK) 4567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4577fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Hi duty Cycle Directed Adv state is supported. 0x0000000000000008 */ 458911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASK 0x08 459911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_OFF 0 460911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_HI_DUTY_DIR_ADV_SUPPORTED(x) \ 461911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_OFF] & \ 462911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASK) 4637fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4647fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Passive Scan state is supported. 0x0000000000000010 */ 465911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_PASS_SCAN_MASK 0x10 466911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_PASS_SCAN_OFF 0 467911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_PASS_SCAN_SUPPORTED(x) \ 468911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_OFF] & HCI_SUPP_LE_STATES_PASS_SCAN_MASK) 4697fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4707fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Active Scan state is supported. 0x0000000000000020 */ 471911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASK 0x20 472911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_OFF 0 473911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_ACTIVE_SCAN_SUPPORTED(x) \ 474911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_OFF] & \ 475911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASK) 4767fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4779ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Initiating state is supported. 0x0000000000000040 (or connection state in 4789ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * master role is also supported) */ 479911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_INIT_MASK 0x40 480911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_INIT_OFF 0 481911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_INIT_SUPPORTED(x) \ 482911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_INIT_OFF] & HCI_SUPP_LE_STATES_INIT_MASK) 4837fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4849ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* connection state in slave role is also supported. 0x0000000000000080 */ 485911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SLAVE_MASK 0x80 486911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SLAVE_OFF 0 487911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_SLAVE_SUPPORTED(x) \ 488911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_SLAVE_OFF] & HCI_SUPP_LE_STATES_SLAVE_MASK) 4897fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4909ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Non Connectable Adv state and Passive Scanning State combination is 4919ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported. 0x0000000000000100 */ 492911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_MASK 0x01 493911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_OFF 1 494911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_NON_CONN_ADV_PASS_SCAN_SUPPORTED(x) \ 495911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_OFF] & \ 496911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_NON_CONN_ADV_PASS_SCAN_MASK) 4977fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 4989ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Scannable Adv state and Passive Scanning State combination is supported. 4999ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000000000200 */ 500911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_MASK 0x02 501911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_OFF 1 502911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_SCAN_ADV_PASS_SCAN_SUPPORTED(x) \ 503911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_OFF] & \ 504911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_SCAN_ADV_PASS_SCAN_MASK) 5057fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5069ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Connectable Adv state and Passive Scanning State combination is supported. 5079ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000000000400 */ 508911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_MASK 0x04 509911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_OFF 1 510911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_CONN_ADV_PASS_SCAN_SUPPORTED(x) \ 511911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_OFF] & \ 512911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_CONN_ADV_PASS_SCAN_MASK) 5137fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5149ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* High Duty Cycl Directed ADv and Passive Scanning State combination is 5159ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported. 0x0000000000000800 */ 516911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_MASK 0x08 517911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_OFF 1 518911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_SUPPORTED(x) \ 519911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_MASK] & \ 520911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_PASS_SCAN_OFF) 5217fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5229ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Non Connectable Adv state and Passive Scanning State combination is 5239ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported. 0x0000000000001000 */ 524911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_MASK 0x10 525911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_OFF 1 526911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_SUPPORTED(x) \ 527911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_OFF] & \ 528911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_NON_CONN_ADV_ACTIVE_SCAN_MASK) 5297fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5309ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Scannable Adv state and Active Scanning State combination is supported. 5319ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000000002000 */ 532911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_MASK 0x20 533911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_OFF 1 534911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_SCAN_ADV_ACTIVE_SCAN_SUPPORTED(x) \ 535911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_OFF] & \ 536911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_SCAN_ADV_ACTIVE_SCAN_MASK) 5377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5389ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Connectable Adv state and Active Scanning State combination is supported. 5399ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000000004000 */ 540911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_MASK 0x40 541911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_OFF 1 542911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_CONN_ADV_ACTIVE_SCAN_SUPPORTED(x) \ 543911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_OFF] & \ 544911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_CONN_ADV_ACTIVE_SCAN_MASK) 5457fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5469ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* High Duty Cycl Directed ADv and ACtive Scanning State combination is 5479ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported. 0x0000000000008000 */ 548911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_MASK 0x80 549911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_OFF 1 550911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_SUPPORTED(x) \ 551911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_MASK] & \ 552911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_ACTIVE_SCAN_OFF) 5537fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5549ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Non-Connectable Adv state and Initiating State combination is supported. 5559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000000010000 */ 556911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_INIT_MASK 0x01 557911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_INIT_OFF 2 558911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_NON_CONN_INIT_SUPPORTED(x) \ 559911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_NON_CONN_INIT_OFF] & \ 560911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_NON_CONN_INIT_MASK) 5617fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5629ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Scannable Adv state and Initiating State combination is supported. 5639ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000000020000 */ 564911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_INIT_MASK 0x02 565911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_INIT_OFF 2 566911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_SCAN_ADV_INIT_SUPPORTED(x) \ 567911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_INIT_OFF] & \ 568911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_SCAN_ADV_INIT_MASK) 5697fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5709ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Non-Connectable Adv state and Master Role combination is supported. 5719ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000000040000 */ 572911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_MASK 0x04 573911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_OFF 2 574911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_NON_CONN_ADV_MASTER_SUPPORTED(x) \ 575911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_OFF] & \ 576911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_NON_CONN_ADV_MASTER_MASK) 5777fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5789ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Scannable Adv state and Master Role combination is supported. 5799ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000000040000 */ 580911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_MASK 0x08 581911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_OFF 2 582911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_SCAN_ADV_MASTER_SUPPORTED(x) \ 583911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_OFF] & \ 584911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_SCAN_ADV_MASTER_MASK) 5857fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5869ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Non-Connectable Adv and Slave Role combination is supported. 5879ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x000000000100000 */ 588911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_MASK 0x10 589911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_OFF 2 590911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_NON_CONN_ADV_SLAVE_SUPPORTED(x) \ 591911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_OFF] & \ 592911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_NON_CONN_ADV_SLAVE_MASK) 5937fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 5949ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Scannable Adv and Slave Role combination is supported. 0x000000000200000 */ 595911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_MASK 0x20 596911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_OFF 2 597911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_SCAN_ADV_SLAVE_SUPPORTED(x) \ 598911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_OFF] & \ 599911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_SCAN_ADV_SLAVE_MASK) 6007fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6019ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Passive Scan and Initiating State combination is supported. 6029ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x000000000400000 */ 603911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_PASS_SCAN_INIT_MASK 0x40 604911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_PASS_SCAN_INIT_OFF 2 605911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_PASS_SCAN_INIT_SUPPORTED(x) \ 606911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_INIT_OFF] & \ 607911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_PASS_SCAN_INIT_MASK) 6087fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6099ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Active Scan and Initiating State combination is supported. 6109ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x000000000800000 */ 611911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_MASK 0x80 612911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_OFF 2 613911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_ACTIVE_SCAN_INIT_SUPPORTED(x) \ 614911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_OFF] & \ 615911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_ACTIVE_SCAN_INIT_MASK) 6167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6179ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Passive Scan and Master Role combination is supported. 0x000000001000000 */ 618911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_MASK 0x01 619911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_OFF 3 620911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_PASS_SCAN_MASTER_SUPPORTED(x) \ 621911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_OFF] & \ 622911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_PASS_SCAN_MASTER_MASK) 6237fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6249ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Active Scan and Master Role combination is supported. 0x000000002000000 */ 625911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_MASK 0x02 626911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_OFF 3 627911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_ACTIVE_SCAN_MASTER_SUPPORTED(x) \ 628911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_OFF] & \ 629911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_ACTIVE_SCAN_MASTER_MASK) 6307fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6319ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Passive Scan and Slave Role combination is supported. 0x000000004000000 */ 632911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_MASK 0x04 633911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_OFF 3 634911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_PASS_SCAN_SLAVE_SUPPORTED(x) \ 635911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_OFF] & \ 636911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_PASS_SCAN_SLAVE_MASK) 6377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6389ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Active Scan and Slave Role combination is supported. 0x000000008000000 */ 639911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_MASK 0x08 640911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_OFF 3 641911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_ACTIVE_SCAN_SLAVE_SUPPORTED(x) \ 642911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_OFF] & \ 643911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_ACTIVE_SCAN_SLAVE_MASK) 6447fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6459ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Link Layer Topology Added States Combo */ 6469ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Initiating State and Master Role combination supported. 647911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson Master Role and Master Role combination is also supported. 0x0000000010000000 648911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson */ 649911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_INIT_MASTER_MASK 0x10 650911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_INIT_MASTER_OFF 3 651911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_INIT_MASTER_SUPPORTED(x) \ 652911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_INIT_MASTER_OFF] & \ 653911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_INIT_MASTER_MASK) 6547fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Low Duty Cycle Directed Advertising State . 0x0000000020000000 */ 656911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASK 0x20 657911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_OFF 3 658911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_LOW_DUTY_DIR_ADV_SUPPORTED(x) \ 659911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_LOW_DUTY_DIR_ADV_OFF] & \ 660911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_LOW_DUTY_DIR_ADV_MASK) 661444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 6629ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Low Duty Cycle Directed Advertising State and Passive scan combination. 6639ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000040000000 */ 664911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_MASK 0x40 665911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_OFF 3 666911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_SUPPORTED(x) \ 667911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_OFF] & \ 668911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_PASS_SCAN_MASK) 669444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 6709ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Low Duty Cycle Directed Advertising State and Active scan combination. 6719ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000080000000 */ 672911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_MASK 0x80 673911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_OFF 3 674911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_SUPPORTED(x) \ 675911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_OFF] & \ 676911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_ACTIVE_SCAN_MASK) 677444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 6789ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Connectable Advertising State and Initiating State combination supported. 6799ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 0x0000000100000000 */ 680911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_INIT_MASK 0x01 681911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_INIT_OFF 4 682911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_CONN_ADV_INIT_SUPPORTED(x) \ 683911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_CONN_ADV_INIT_OFF] & \ 684911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_CONN_ADV_INIT_MASK) 6857fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6869ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* High Duty Cycle Directed Advertising State and Initiating State combination 6879ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported. */ 688911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_MASK 0x02 689911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_OFF 4 690911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_HI_DUTY_DIR_ADV_INIT_SUPPORTED(x) \ 691911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_OFF] & \ 692911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_INIT_MASK) 6937fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 6949ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Low Duty Cycle Directed Advertising State and Initiating State combination 6959ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported.*/ 696911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_MASK 0x04 697911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_OFF 4 698911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_LO_DUTY_DIR_ADV_INIT_SUPPORTED(x) \ 699911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_OFF] & \ 700911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_INIT_MASK) 7017fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 7027fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connectable Advertising State and Master Role combination supported.*/ 703911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_MASTER_MASK 0x08 704911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_MASTER_OFF 4 705911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_CONN_ADV_MASTER_SUPPORTED(x) \ 706911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_CONN_ADV_MASTER_OFF] & \ 707911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_CONN_ADV_MASTER_MASK) 7087fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 7099ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* High Duty Cycle Directed Advertising State and Master Role combination 7109ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported.*/ 711911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_MASK 0x10 712911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_OFF 4 713911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_HI_DUTY_DIR_ADV_MASTER_SUPPORTED(x) \ 714911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_OFF] & \ 715911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_MASTER_MASK) 7167fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 7179ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Low Duty Cycle Directed Advertising State and Master Role combination 7189ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported.*/ 719911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_MASK 0x20 720911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_OFF 4 721911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_LO_DUTY_DIR_ADV_MASTER_SUPPORTED(x) \ 722911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_OFF] & \ 723911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_MASTER_MASK) 7247fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 7257fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connectable Advertising State and Slave Role combination supported. */ 726911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_MASK 0x40 727911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_OFF 4 728911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_CONN_ADV_SLAVE_SUPPORTED(x) \ 729911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_OFF] & \ 730911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_CONN_ADV_SLAVE_MASK) 7317fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 7329ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* High Duty Cycle Directed Advertising State and slave Role combination 7339ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported.*/ 734911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_MASK 0x80 735911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_OFF 4 736911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_SUPPORTED(x) \ 737911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_OFF] & \ 738911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_HI_DUTY_DIR_ADV_SLAVE_MASK) 7397fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 7409ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Low Duty Cycle Directed Advertising State and slave Role combination 7419ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * supported.*/ 742911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_MASK 0x01 743911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_OFF 5 744911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_SUPPORTED(x) \ 745911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_OFF] & \ 746911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_LO_DUTY_DIR_ADV_SLAVE_MASK) 7477fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 7487fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Initiating State and Slave Role combination supported. 7497fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta Master Role and Slave Role combination also supported. 7507fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta */ 751911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_MASK 0x02 752911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_OFF 5 753911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_STATES_INIT_MASTER_SLAVE_SUPPORTED(x) \ 754911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_OFF] & \ 755911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_LE_STATES_INIT_MASTER_SLAVE_MASK) 7567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 758ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Definitions for HCI Events 7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 760911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_COMP_EVT 0x01 761911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_RESULT_EVT 0x02 762911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONNECTION_COMP_EVT 0x03 763911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONNECTION_REQUEST_EVT 0x04 764911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISCONNECTION_COMP_EVT 0x05 765911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AUTHENTICATION_COMP_EVT 0x06 766911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RMT_NAME_REQUEST_COMP_EVT 0x07 767911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENCRYPTION_CHANGE_EVT 0x08 768911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANGE_CONN_LINK_KEY_EVT 0x09 769911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MASTER_LINK_KEY_COMP_EVT 0x0A 770911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_FEATURES_COMP_EVT 0x0B 771911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_VERSION_COMP_EVT 0x0C 772911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_QOS_SETUP_COMP_EVT 0x0D 773911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_COMMAND_COMPLETE_EVT 0x0E 774911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_COMMAND_STATUS_EVT 0x0F 775911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HARDWARE_ERROR_EVT 0x10 776911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLUSH_OCCURED_EVT 0x11 777911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ROLE_CHANGE_EVT 0x12 778911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_NUM_COMPL_DATA_PKTS_EVT 0x13 779911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MODE_CHANGE_EVT 0x14 780911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RETURN_LINK_KEYS_EVT 0x15 781911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PIN_CODE_REQUEST_EVT 0x16 782911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_KEY_REQUEST_EVT 0x17 783911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_KEY_NOTIFICATION_EVT 0x18 784911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LOOPBACK_COMMAND_EVT 0x19 785911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DATA_BUF_OVERFLOW_EVT 0x1A 786911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_SLOTS_CHANGED_EVT 0x1B 787911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CLOCK_OFF_COMP_EVT 0x1C 788911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONN_PKT_TYPE_CHANGE_EVT 0x1D 789911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_QOS_VIOLATION_EVT 0x1E 790911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_MODE_CHANGE_EVT 0x1F 791911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_REP_MODE_CHNG_EVT 0x20 792911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLOW_SPECIFICATION_COMP_EVT 0x21 793911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_RSSI_RESULT_EVT 0x22 794911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_EXT_FEATURES_COMP_EVT 0x23 795911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_CONNECTION_COMP_EVT 0x2C 796911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_CONNECTION_CHANGED_EVT 0x2D 797911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SNIFF_SUB_RATE_EVT 0x2E 798911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXTENDED_INQUIRY_RESULT_EVT 0x2F 7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPTION_KEY_REFRESH_COMP_EVT 0x30 800911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAPABILITY_REQUEST_EVT 0x31 801911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAPABILITY_RESPONSE_EVT 0x32 802911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_CONFIRMATION_REQUEST_EVT 0x33 803911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_PASSKEY_REQUEST_EVT 0x34 804911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REMOTE_OOB_DATA_REQUEST_EVT 0x35 805911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SIMPLE_PAIRING_COMPLETE_EVT 0x36 806911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_SUPER_TOUT_CHANGED_EVT 0x38 807911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENHANCED_FLUSH_COMPLETE_EVT 0x39 808911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_PASSKEY_NOTIFY_EVT 0x3B 809911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_KEYPRESS_NOTIFY_EVT 0x3C 810911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RMT_HOST_SUP_FEAT_NOTIFY_EVT 0x3D 8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/*#define HCI_GENERIC_AMP_LINK_KEY_NOTIF_EVT 0x3E Removed from spec */ 813911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PHYSICAL_LINK_COMP_EVT 0x40 814911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANNEL_SELECTED_EVT 0x41 815911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISC_PHYSICAL_LINK_COMP_EVT 0x42 8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PHY_LINK_LOSS_EARLY_WARNING_EVT 0x43 817911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PHY_LINK_RECOVERY_EVT 0x44 818911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LOGICAL_LINK_COMP_EVT 0x45 819911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISC_LOGICAL_LINK_COMP_EVT 0x46 820911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLOW_SPEC_MODIFY_COMP_EVT 0x47 821911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_NUM_COMPL_DATA_BLOCKS_EVT 0x48 822911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SHORT_RANGE_MODE_COMPLETE_EVT 0x4C 823911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_STATUS_CHANGE_EVT 0x4D 8247fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SET_TRIGGERED_CLOCK_CAPTURE_EVT 0x4E 8255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ULP HCI Event */ 827911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_EVENT 0x3e 8285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ULP Event sub code */ 829911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_CONN_COMPLETE_EVT 0x01 830911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_ADV_PKT_RPT_EVT 0x02 831911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_LL_CONN_PARAM_UPD_EVT 0x03 832911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_READ_REMOTE_FEAT_CMPL_EVT 0x04 833911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_LTK_REQ_EVT 0x05 834911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_RC_PARAM_REQ_EVT 0x06 835911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_DATA_LENGTH_CHANGE_EVT 0x07 836911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_ENHANCED_CONN_COMPLETE_EVT 0x0a 837911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_DIRECT_ADV_EVT 0x0b 838801db30048049a63869587af4b89a6e5a4dabb9bJakub Pawlowski#define HCI_LE_EXTENDED_ADVERTISING_REPORT_EVT 0x0D 839751381c64fee63590f0888c8eac5c8a474f1e25bJakub Pawlowski#define HCI_LE_ADVERTISING_SET_TERMINATED_EVT 0x12 8407fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 8417fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Definitions for LE Channel Map */ 842911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_CHNL_MAP_SIZE 5 8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 844911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VENDOR_SPECIFIC_EVT 0xFF /* Vendor specific events */ 845911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_NAP_TRACE_EVT \ 846911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 0xFF /* was define 0xFE, 0xFD, change to 0xFF \ 847911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson because conflict w/ TCI_EVT and per \ 848911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson specification compliant */ 8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 851ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Defentions for HCI Error Codes that are past in the events 8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 853911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUCCESS 0x00 854911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PENDING 0x00 855911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_ILLEGAL_COMMAND 0x01 856911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_NO_CONNECTION 0x02 857911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_HW_FAILURE 0x03 858911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_PAGE_TIMEOUT 0x04 859911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_AUTH_FAILURE 0x05 860911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_KEY_MISSING 0x06 861911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_MEMORY_FULL 0x07 862911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CONNECTION_TOUT 0x08 863911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_MAX_NUM_OF_CONNECTIONS 0x09 864911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_MAX_NUM_OF_SCOS 0x0A 865911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CONNECTION_EXISTS 0x0B 866911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_COMMAND_DISALLOWED 0x0C 867911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_HOST_REJECT_RESOURCES 0x0D 868911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_HOST_REJECT_SECURITY 0x0E 869911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_HOST_REJECT_DEVICE 0x0F 870911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_HOST_TIMEOUT 0x10 871911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNSUPPORTED_VALUE 0x11 872911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_ILLEGAL_PARAMETER_FMT 0x12 873911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_PEER_USER 0x13 874911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_PEER_LOW_RESOURCES 0x14 875911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_PEER_POWER_OFF 0x15 876911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CONN_CAUSE_LOCAL_HOST 0x16 877911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_REPEATED_ATTEMPTS 0x17 878911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_PAIRING_NOT_ALLOWED 0x18 879911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNKNOWN_LMP_PDU 0x19 880911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNSUPPORTED_REM_FEATURE 0x1A 881911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_SCO_OFFSET_REJECTED 0x1B 882911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_SCO_INTERVAL_REJECTED 0x1C 883911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_SCO_AIR_MODE 0x1D 884911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_INVALID_LMP_PARAM 0x1E 885911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNSPECIFIED 0x1F 886911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNSUPPORTED_LMP_FEATURE 0x20 887911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_ROLE_CHANGE_NOT_ALLOWED 0x21 888911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_LMP_RESPONSE_TIMEOUT 0x22 889911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_LMP_ERR_TRANS_COLLISION 0x23 890911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_LMP_PDU_NOT_ALLOWED 0x24 891911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_ENCRY_MODE_NOT_ACCEPTABLE 0x25 892911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNIT_KEY_USED 0x26 893911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_QOS_NOT_SUPPORTED 0x27 894911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_INSTANT_PASSED 0x28 895911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED 0x29 896911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_DIFF_TRANSACTION_COLLISION 0x2A 897911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNDEFINED_0x2B 0x2B 898911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_QOS_UNACCEPTABLE_PARAM 0x2C 899911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_QOS_REJECTED 0x2D 900911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CHAN_CLASSIF_NOT_SUPPORTED 0x2E 901911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_INSUFFCIENT_SECURITY 0x2F 902911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_PARAM_OUT_OF_RANGE 0x30 903911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNDEFINED_0x31 0x31 904911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_ROLE_SWITCH_PENDING 0x32 905911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNDEFINED_0x33 0x33 906911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_RESERVED_SLOT_VIOLATION 0x34 907911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_ROLE_SWITCH_FAILED 0x35 908911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_INQ_RSP_DATA_TOO_LARGE 0x36 909911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_SIMPLE_PAIRING_NOT_SUPPORTED 0x37 910911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_HOST_BUSY_PAIRING 0x38 911911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_REJ_NO_SUITABLE_CHANNEL 0x39 912911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CONTROLLER_BUSY 0x3A 913911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_UNACCEPT_CONN_INTERVAL 0x3B 914911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_DIRECTED_ADVERTISING_TIMEOUT 0x3C 915911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CONN_TOUT_DUE_TO_MIC_FAILURE 0x3D 916911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CONN_FAILED_ESTABLISHMENT 0x3E 917911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_MAC_CONNECTION_FAILED 0x3F 9185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 919ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* ConnectionLess Broadcast errors */ 920911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_LT_ADDR_ALREADY_IN_USE 0x40 921911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_LT_ADDR_NOT_ALLOCATED 0x41 922911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CLB_NOT_ENABLED 0x42 923911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_CLB_DATA_TOO_BIG 0x43 924ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 925911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERR_MAX_ERR 0x43 9265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 927911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HINT_TO_RECREATE_AMP_PHYS_LINK 0xFF 9285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 930ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Definitions for HCI enable event 9315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 932911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_COMPLETE_EV(p) (*((uint32_t*)(p)) & 0x00000001) 933911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_RESULT_EV(p) (*((uint32_t*)(p)) & 0x00000002) 934911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONNECTION_COMPLETE_EV(p) (*((uint32_t*)(p)) & 0x00000004) 935911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONNECTION_REQUEST_EV(p) (*((uint32_t*)(p)) & 0x00000008) 936911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISCONNECTION_COMPLETE_EV(p) (*((uint32_t*)(p)) & 0x00000010) 937911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AUTHENTICATION_COMPLETE_EV(p) (*((uint32_t*)(p)) & 0x00000020) 938911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RMT_NAME_REQUEST_COMPL_EV(p) (*((uint32_t*)(p)) & 0x00000040) 939911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANGE_CONN_ENCRPT_ENABLE_EV(p) (*((uint32_t*)(p)) & 0x00000080) 940911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANGE_CONN_LINK_KEY_EV(p) (*((uint32_t*)(p)) & 0x00000100) 941911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MASTER_LINK_KEY_COMPLETE_EV(p) (*((uint32_t*)(p)) & 0x00000200) 942911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_FEATURES_COMPL_EV(p) (*((uint32_t*)(p)) & 0x00000400) 943911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RMT_VERSION_COMPL_EV(p) (*((uint32_t*)(p)) & 0x00000800) 944911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_QOS_SETUP_COMPLETE_EV(p) (*((uint32_t*)(p)) & 0x00001000) 945911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_COMMAND_COMPLETE_EV(p) (*((uint32_t*)(p)) & 0x00002000) 946911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_COMMAND_STATUS_EV(p) (*((uint32_t*)(p)) & 0x00004000) 947911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HARDWARE_ERROR_EV(p) (*((uint32_t*)(p)) & 0x00008000) 948911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLASH_OCCURED_EV(p) (*((uint32_t*)(p)) & 0x00010000) 949911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ROLE_CHANGE_EV(p) (*((uint32_t*)(p)) & 0x00020000) 950911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_NUM_COMPLETED_PKTS_EV(p) (*((uint32_t*)(p)) & 0x00040000) 951911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MODE_CHANGE_EV(p) (*((uint32_t*)(p)) & 0x00080000) 952911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RETURN_LINK_KEYS_EV(p) (*((uint32_t*)(p)) & 0x00100000) 953911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PIN_CODE_REQUEST_EV(p) (*((uint32_t*)(p)) & 0x00200000) 954911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_KEY_REQUEST_EV(p) (*((uint32_t*)(p)) & 0x00400000) 955911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_KEY_NOTIFICATION_EV(p) (*((uint32_t*)(p)) & 0x00800000) 956911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LOOPBACK_COMMAND_EV(p) (*((uint32_t*)(p)) & 0x01000000) 957911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DATA_BUF_OVERFLOW_EV(p) (*((uint32_t*)(p)) & 0x02000000) 958911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_SLOTS_CHANGE_EV(p) (*((uint32_t*)(p)) & 0x04000000) 959911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CLOCK_OFFSET_COMP_EV(p) (*((uint32_t*)(p)) & 0x08000000) 960911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONN_PKT_TYPE_CHANGED_EV(p) (*((uint32_t*)(p)) & 0x10000000) 961911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_QOS_VIOLATION_EV(p) (*((uint32_t*)(p)) & 0x20000000) 962911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_MODE_CHANGED_EV(p) (*((uint32_t*)(p)) & 0x40000000) 963911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_REP_MODE_CHNG_EV(p) (*((uint32_t*)(p)) & 0x80000000) 9645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the default event mask for 2.1+EDR (Lisbon) does not include Lisbon events */ 966911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_EVENT_MASK_0 0xFFFFFFFF 967911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_EVENT_MASK_1 0x00001FFF 9685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the event mask for 2.0 + EDR and later (includes Lisbon events) */ 970911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LISBON_EVENT_MASK_0 0xFFFFFFFF 971911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LISBON_EVENT_MASK_1 0x1DBFFFFF 972911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LISBON_EVENT_MASK \ 973911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson { 0x0D, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } 974911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LISBON_EVENT_MASK_EXT \ 975911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson { 0x1D, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } 976911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DUMO_EVENT_MASK_EXT \ 977911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson { 0x3D, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } 9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 0x00001FFF FFFFFFFF Default - no Lisbon events 9795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00000800 00000000 Synchronous Connection Complete Event 9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00001000 00000000 Synchronous Connection Changed Event 9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00002000 00000000 Sniff Subrate Event 9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00004000 00000000 Extended Inquiry Result Event 9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00008000 00000000 Encryption Key Refresh Complete Event 9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00010000 00000000 IO Capability Request Event 9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00020000 00000000 IO Capability Response Event 9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00040000 00000000 User Confirmation Request Event 9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00080000 00000000 User Passkey Request Event 9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00100000 00000000 Remote OOB Data Request Event 9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00200000 00000000 Simple Pairing Complete Event 9905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00400000 00000000 Generic AMP Link Key Notification Event 9915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x00800000 00000000 Link Supervision Timeout Changed Event 9925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x01000000 00000000 Enhanced Flush Complete Event 9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x04000000 00000000 User Passkey Notification Event 9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x08000000 00000000 Keypress Notification Event 9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x10000000 00000000 Remote Host Supported Features Notification Event 9965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x20000000 00000000 LE Meta Event 9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project */ 9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* the event mask for AMP controllers */ 1000911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_EVENT_MASK_3_0 "\x00\x00\x00\x00\x00\x00\x3F\xFF" 10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 0x0000000000000000 No events specified (default) 10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000001 Physical Link Complete Event 10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000002 Channel Selected Event 10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000004 Disconnection Physical Link Event 10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000008 Physical Link Loss Early Warning Event 10075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000010 Physical Link Recovery Event 10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000020 Logical Link Complete Event 10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000040 Disconnection Logical Link Complete Event 10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000080 Flow Spec Modify Complete Event 10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000100 Number of Completed Data Blocks Event 10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000200 AMP Start Test Event 10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000400 AMP Test End Event 10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000000800 AMP Receiver Report Event 10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000001000 Short Range Mode Change Complete Event 10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 0x0000000000002000 AMP Status Change Event 10175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10193aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* the event mask page 2 (CLB + CSA4) for BR/EDR controller */ 1020911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_2_EVENT_MASK "\x00\x00\x00\x00\x00\x7F\xC0\x00" 10213aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* 0x0000000000004000 Triggered Clock Capture Event 10223aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 0x0000000000008000 Sync Train Complete Event 10233aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 0x0000000000010000 Sync Train Received Event 10243aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 0x0000000000020000 Connectionless Broadcast Receive Event 10253aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 0x0000000000040000 Connectionless Broadcast Timeout Event 10263aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 0x0000000000080000 Truncated Page Complete Event 10273aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 0x0000000000100000 Salve Page Response Timeout Event 10283aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 0x0000000000200000 Connectionless Broadcast Channel Map Change Event 10293aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 0x0000000000400000 Inquiry Response Notification Event 10303aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*/ 1031d19e0785e662e640191a075eda07acce61c2aedaMarie Janssen#if (BLE_PRIVACY_SPT == TRUE) 1032444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* BLE event mask */ 1033911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_EVENT_MASK_DEF "\x00\x00\x00\x00\x00\x00\x07\xff" 1034444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#else 1035911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLE_EVENT_MASK_DEF "\x00\x00\x00\x00\x00\x00\x00\x7f" 1036444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#endif 10375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1038ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Definitions for packet type masks (BT1.2 and BT2.0 definitions) 10395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1040911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_NO_2_DH1 0x0002 1041911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_NO_3_DH1 0x0004 1042911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_DM1 0x0008 1043911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_DH1 0x0010 1044911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_HV1 0x0020 1045911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_HV2 0x0040 1046911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_HV3 0x0080 1047911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_NO_2_DH3 0x0100 1048911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_NO_3_DH3 0x0200 1049911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_DM3 0x0400 1050911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_DH3 0x0800 1051911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_NO_2_DH5 0x1000 1052911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_NO_3_DH5 0x2000 1053911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_DM5 0x4000 1054911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PKT_TYPES_MASK_DH5 0x8000 10555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Packet type should be one of valid but at least one should be specified */ 1057911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VALID_SCO_PKT_TYPE(t) \ 1058911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((((t) & \ 1059911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ~(HCI_PKT_TYPES_MASK_HV1 | HCI_PKT_TYPES_MASK_HV2 | \ 1060911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_PKT_TYPES_MASK_HV3)) == 0)) && \ 1061911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((t) != 0)) 10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Packet type should not be invalid and at least one should be specified */ 1064911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VALID_ACL_PKT_TYPE(t) \ 1065911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((((t) & \ 1066911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ~(HCI_PKT_TYPES_MASK_DM1 | HCI_PKT_TYPES_MASK_DH1 | \ 1067911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_PKT_TYPES_MASK_DM3 | HCI_PKT_TYPES_MASK_DH3 | \ 1068911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_PKT_TYPES_MASK_DM5 | HCI_PKT_TYPES_MASK_DH5 | \ 1069911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_PKT_TYPES_MASK_NO_2_DH1 | HCI_PKT_TYPES_MASK_NO_3_DH1 | \ 1070911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_PKT_TYPES_MASK_NO_2_DH3 | HCI_PKT_TYPES_MASK_NO_3_DH3 | \ 1071911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_PKT_TYPES_MASK_NO_2_DH5 | HCI_PKT_TYPES_MASK_NO_3_DH5)) == 0)) && \ 1072911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((t) & (HCI_PKT_TYPES_MASK_DM1 | HCI_PKT_TYPES_MASK_DH1 | \ 1073911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_PKT_TYPES_MASK_DM3 | HCI_PKT_TYPES_MASK_DH3 | \ 1074911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_PKT_TYPES_MASK_DM5 | HCI_PKT_TYPES_MASK_DH5)) != 0)) 10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1077ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Definitions for eSCO packet type masks (BT1.2 and BT2.0 definitions) 10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1079911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_HV1 0x0001 1080911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_HV2 0x0002 1081911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_HV3 0x0004 1082911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_EV3 0x0008 1083911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_EV4 0x0010 1084911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_EV5 0x0020 1085911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_NO_2_EV3 0x0040 1086911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_NO_3_EV3 0x0080 1087911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_NO_2_EV5 0x0100 1088911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_PKT_TYPES_MASK_NO_3_EV5 0x0200 10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10909ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* Packet type should be one of valid but at least one should be specified for 10919ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * 1.2 */ 1092911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VALID_ESCO_PKT_TYPE(t) \ 1093911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((((t) & \ 1094911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ~(HCI_ESCO_PKT_TYPES_MASK_EV3 | HCI_ESCO_PKT_TYPES_MASK_EV4 | \ 1095911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_ESCO_PKT_TYPES_MASK_EV5)) == 0)) && \ 1096911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((t) != 0)) 1097911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1098911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VALID_ESCO_SCOPKT_TYPE(t) \ 1099911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((((t) & \ 1100911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ~(HCI_ESCO_PKT_TYPES_MASK_HV1 | HCI_ESCO_PKT_TYPES_MASK_HV2 | \ 1101911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_ESCO_PKT_TYPES_MASK_HV3)) == 0)) && \ 1102911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((t) != 0)) 1103911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1104911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VALID_SCO_ALL_PKT_TYPE(t) \ 1105911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((((t) & \ 1106911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ~(HCI_ESCO_PKT_TYPES_MASK_HV1 | HCI_ESCO_PKT_TYPES_MASK_HV2 | \ 1107911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_ESCO_PKT_TYPES_MASK_HV3 | HCI_ESCO_PKT_TYPES_MASK_EV3 | \ 1108911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_ESCO_PKT_TYPES_MASK_EV4 | HCI_ESCO_PKT_TYPES_MASK_EV5)) == 0)) && \ 1109911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((t) != 0)) 11105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1112ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Define parameters to allow role switch during create connection 11135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1114911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CR_CONN_NOT_ALLOW_SWITCH 0x00 1115911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CR_CONN_ALLOW_SWITCH 0x01 11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1118ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Hold Mode command destination 11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1120911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HOLD_MODE_DEST_LOCAL_DEVICE 0x00 1121911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HOLD_MODE_DEST_RMT_DEVICE 0x01 11225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1124ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Definitions for different HCI parameters 11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1126911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PER_INQ_MIN_MAX_PERIOD 0x0003 1127911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PER_INQ_MAX_MAX_PERIOD 0xFFFF 1128911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PER_INQ_MIN_MIN_PERIOD 0x0002 1129911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PER_INQ_MAX_MIN_PERIOD 0xFFFE 11305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1131911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_INQUIRY_LENGTH 0x30 11325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1133911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MIN_INQ_LAP 0x9E8B00 1134911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_INQ_LAP 0x9E8B3F 11355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI role defenitions */ 1137911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ROLE_MASTER 0x00 1138911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ROLE_SLAVE 0x01 1139911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ROLE_UNKNOWN 0xff 11405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI mode defenitions */ 1142911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MODE_ACTIVE 0x00 1143911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MODE_HOLD 0x01 1144911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MODE_SNIFF 0x02 1145911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MODE_PARK 0x03 11465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI Flow Control Mode defenitions */ 1148911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PACKET_BASED_FC_MODE 0x00 1149911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BLOCK_BASED_FC_MODE 0x01 11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define Packet types as requested by the Host */ 1152911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACL_PKT_TYPE_NONE 0x0000 1153911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACL_PKT_TYPE_DM1 0x0008 1154911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACL_PKT_TYPE_DH1 0x0010 1155911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACL_PKT_TYPE_AUX1 0x0200 1156911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACL_PKT_TYPE_DM3 0x0400 1157911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACL_PKT_TYPE_DH3 0x0800 1158911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACL_PKT_TYPE_DM5 0x4000 1159911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACL_PKT_TYPE_DH5 0x8000 11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define key type in the Master Link Key command */ 1162911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USE_SEMI_PERMANENT_KEY 0x00 1163911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USE_TEMPORARY_KEY 0x01 11645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page scan period modes */ 1166911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_REP_MODE_R0 0x00 1167911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_REP_MODE_R1 0x01 1168911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_REP_MODE_R2 0x02 11695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define limits for page scan repetition modes */ 1171911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_R1_LIMIT 0x0800 1172911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_R2_LIMIT 0x1000 11735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page scan period modes */ 1175911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_PER_MODE_P0 0x00 1176911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_PER_MODE_P1 0x01 1177911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_PER_MODE_P2 0x02 11785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page scan modes */ 1180911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MANDATARY_PAGE_SCAN_MODE 0x00 1181911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_OPTIONAL_PAGE_SCAN_MODE1 0x01 1182911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_OPTIONAL_PAGE_SCAN_MODE2 0x02 1183911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_OPTIONAL_PAGE_SCAN_MODE3 0x03 11845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page and inquiry scan types */ 1186911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SCAN_TYPE_STANDARD 0x00 1187911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SCAN_TYPE_INTERLACED 0x01 /* 1.2 devices or later */ 1188911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEF_SCAN_TYPE HCI_SCAN_TYPE_STANDARD 11895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for quality of service service types */ 1191911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SERVICE_NO_TRAFFIC 0x00 1192911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SERVICE_BEST_EFFORT 0x01 1193911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SERVICE_GUARANTEED 0x02 11945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1195911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_QOS_LATENCY_DO_NOT_CARE 0xFFFFFFFF 1196911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_QOS_DELAY_DO_NOT_CARE 0xFFFFFFFF 11975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for Flow Specification */ 11995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_LATENCY_DO_NOT_CARE 0xFFFFFFFF 12005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for AFH Channel Map */ 1202911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AFH_CHANNEL_MAP_LEN 10 12035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for Extended Inquiry Response */ 1205911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_INQ_RESPONSE_LEN 240 1206911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_FLAGS_TYPE BT_EIR_FLAGS_TYPE 1207911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_MORE_16BITS_UUID_TYPE BT_EIR_MORE_16BITS_UUID_TYPE 1208911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_COMPLETE_16BITS_UUID_TYPE BT_EIR_COMPLETE_16BITS_UUID_TYPE 1209911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_MORE_32BITS_UUID_TYPE BT_EIR_MORE_32BITS_UUID_TYPE 1210911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_COMPLETE_32BITS_UUID_TYPE BT_EIR_COMPLETE_32BITS_UUID_TYPE 1211911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_MORE_128BITS_UUID_TYPE BT_EIR_MORE_128BITS_UUID_TYPE 1212911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_COMPLETE_128BITS_UUID_TYPE BT_EIR_COMPLETE_128BITS_UUID_TYPE 1213911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_SHORTENED_LOCAL_NAME_TYPE BT_EIR_SHORTENED_LOCAL_NAME_TYPE 1214911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_COMPLETE_LOCAL_NAME_TYPE BT_EIR_COMPLETE_LOCAL_NAME_TYPE 1215911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_TX_POWER_LEVEL_TYPE BT_EIR_TX_POWER_LEVEL_TYPE 1216911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_MANUFACTURER_SPECIFIC_TYPE BT_EIR_MANUFACTURER_SPECIFIC_TYPE 1217911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_SERVICE_DATA_TYPE BT_EIR_SERVICE_DATA_TYPE 1218911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_SERVICE_DATA_16BITS_UUID_TYPE \ 1219911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson BT_EIR_SERVICE_DATA_16BITS_UUID_TYPE 1220911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_SERVICE_DATA_32BITS_UUID_TYPE \ 1221911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson BT_EIR_SERVICE_DATA_32BITS_UUID_TYPE 1222911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_SERVICE_DATA_128BITS_UUID_TYPE \ 1223911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson BT_EIR_SERVICE_DATA_128BITS_UUID_TYPE 1224911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_OOB_BD_ADDR_TYPE BT_EIR_OOB_BD_ADDR_TYPE 1225911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_OOB_COD_TYPE BT_EIR_OOB_COD_TYPE 1226911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_OOB_SSP_HASH_C_TYPE BT_EIR_OOB_SSP_HASH_C_TYPE 1227911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EIR_OOB_SSP_RAND_R_TYPE BT_EIR_OOB_SSP_RAND_R_TYPE 12285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for Write Simple Pairing Mode */ 1230911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SP_MODE_UNDEFINED 0x00 1231911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SP_MODE_ENABLED 0x01 12325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for Write Simple Pairing Debug Mode */ 1234911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SPD_MODE_DISABLED 0x00 1235911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SPD_MODE_ENABLED 0x01 12365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1237444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* Definitions for Write Secure Connections Host Support */ 1238911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SC_MODE_DISABLED 0x00 1239911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SC_MODE_ENABLED 0x01 1240444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 12415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Definitions for IO Capability Response/Command */ 1242911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAP_DISPLAY_ONLY 0x00 1243911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAP_DISPLAY_YESNO 0x01 1244911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAP_KEYBOARD_ONLY 0x02 1245911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAP_NO_IO 0x03 12465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1247911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_OOB_AUTH_DATA_NOT_PRESENT 0x00 1248911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_OOB_REM_AUTH_DATA_PRESENT 0x01 12495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1250911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MITM_PROTECT_NOT_REQUIRED 0x00 1251911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MITM_PROTECT_REQUIRED 0x01 12525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Policy settings status */ 1254911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISABLE_ALL_LM_MODES 0x0000 1255911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENABLE_MASTER_SLAVE_SWITCH 0x0001 1256911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENABLE_HOLD_MODE 0x0002 1257911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENABLE_SNIFF_MODE 0x0004 1258911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENABLE_PARK_MODE 0x0008 12595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* By default allow switch, because host can not allow that */ 12615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* that until he created the connection */ 1262911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_POLICY_SETTINGS HCI_DISABLE_ALL_LM_MODES 12635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Filters that are sent in set filter command */ 1265911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FILTER_TYPE_CLEAR_ALL 0x00 1266911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FILTER_INQUIRY_RESULT 0x01 1267911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FILTER_CONNECTION_SETUP 0x02 12685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1269911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FILTER_COND_NEW_DEVICE 0x00 1270911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FILTER_COND_DEVICE_CLASS 0x01 1271911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FILTER_COND_BD_ADDR 0x02 12725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1273911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DO_NOT_AUTO_ACCEPT_CONNECT 1 12749ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* role switch disabled */ 1275911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DO_AUTO_ACCEPT_CONNECT 2 12769ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* role switch enabled (1.1 errata 1115) */ 1277911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DO_AUTO_ACCEPT_CONNECT_RS 3 12785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Auto accept flags */ 1280911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AUTO_ACCEPT_OFF 0x00 12815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTO_ACCEPT_ACL_CONNECTIONS 0x01 12825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_AUTO_ACCEPT_SCO_CONNECTIONS 0x02 12835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PIN type */ 1285911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PIN_TYPE_VARIABLE 0 1286911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PIN_TYPE_FIXED 1 12875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Loopback Modes */ 1289911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LOOPBACK_MODE_DISABLED 0 1290911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LOOPBACK_MODE_LOCAL 1 1291911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LOOPBACK_MODE_REMOTE 2 12925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1293911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define SLOTS_PER_10MS 16 /* 0.625 ms slots in a 10 ms tick */ 12945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Maximum connection accept timeout in 0.625msec */ 1296911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_CONN_ACCEPT_TOUT 0xB540 /* 29 sec */ 1297911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEF_CONN_ACCEPT_TOUT 0x1F40 /* 5 sec */ 12985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page timeout is used in LC only and LC is counting down slots not using OS */ 1300911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_PAGE_TOUT 0x2000 /* 5.12 sec (in slots) */ 13015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Scan enable flags */ 1303911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_NO_SCAN_ENABLED 0x00 1304911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_SCAN_ENABLED 0x01 1305911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGE_SCAN_ENABLED 0x02 13065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Pagescan timer definitions in 0.625 ms */ 1308911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MIN_PAGESCAN_INTERVAL 0x12 /* 11.25 ms */ 1309911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_PAGESCAN_INTERVAL 0x1000 /* 2.56 sec */ 1310911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEF_PAGESCAN_INTERVAL 0x0800 /* 1.28 sec */ 13115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Parameter for pagescan window is passed to LC and is kept in slots */ 1313911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MIN_PAGESCAN_WINDOW 0x11 /* 10.625 ms */ 1314911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_PAGESCAN_WINDOW 0x1000 /* 2.56 sec */ 1315911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEF_PAGESCAN_WINDOW 0x12 /* 11.25 ms */ 13165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiryscan timer definitions in 0.625 ms */ 1318911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MIN_INQUIRYSCAN_INTERVAL 0x12 /* 11.25 ms */ 1319911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_INQUIRYSCAN_INTERVAL 0x1000 /* 2.56 sec */ 1320911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEF_INQUIRYSCAN_INTERVAL 0x1000 /* 2.56 sec */ 13215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Parameter for inquiryscan window is passed to LC and is kept in slots */ 1323911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MIN_INQUIRYSCAN_WINDOW 0x11 /* 10.625 ms */ 1324911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_INQUIRYSCAN_WINDOW 0x1000 /* 2.56 sec */ 1325911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEF_INQUIRYSCAN_WINDOW 0x12 /* 11.25 ms */ 13265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption modes */ 1328911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENCRYPT_MODE_DISABLED 0x00 13295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPT_MODE_POINT_TO_POINT 0x01 1330911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENCRYPT_MODE_ALL 0x02 13315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Voice settings */ 1333911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_CODING_LINEAR 0x0000 /* 0000000000 */ 1334911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_CODING_U_LAW 0x0100 /* 0100000000 */ 1335911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_CODING_A_LAW 0x0200 /* 1000000000 */ 1336911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_CODING_MASK 0x0300 /* 1100000000 */ 13375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1338911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_DATA_FMT_1S_COMPLEMENT 0x0000 /* 0000000000 */ 1339911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_DATA_FMT_2S_COMPLEMENT 0x0040 /* 0001000000 */ 13405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_DATA_FMT_SIGN_MAGNITUDE 0x0080 /* 0010000000 */ 1341911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_DATA_FMT_UNSIGNED 0x00c0 /* 0011000000 */ 1342911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_DATA_FMT_MASK 0x00c0 /* 0011000000 */ 13435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1344911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_SAMPLE_SIZE_8BIT 0x0000 /* 0000000000 */ 1345911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_SAMPLE_SIZE_16BIT 0x0020 /* 0000100000 */ 1346911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INP_SAMPLE_SIZE_MASK 0x0020 /* 0000100000 */ 13475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_LINEAR_PCM_BIT_POS_MASK 0x001c /* 0000011100 */ 13495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_INP_LINEAR_PCM_BIT_POS_OFFS 2 13505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1351911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AIR_CODING_FORMAT_CVSD 0x0000 /* 0000000000 */ 1352911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AIR_CODING_FORMAT_U_LAW 0x0001 /* 0000000001 */ 1353911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AIR_CODING_FORMAT_A_LAW 0x0002 /* 0000000010 */ 1354911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AIR_CODING_FORMAT_TRANSPNT 0x0003 /* 0000000011 */ 1355911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AIR_CODING_FORMAT_MASK 0x0003 /* 0000000011 */ 13565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* default 0001100000 */ 1358911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_VOICE_SETTINGS \ 1359911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (HCI_INP_CODING_LINEAR | HCI_INP_DATA_FMT_2S_COMPLEMENT | \ 1360911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_INP_SAMPLE_SIZE_16BIT | HCI_AIR_CODING_FORMAT_CVSD) 1361911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1362911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CVSD_SUPPORTED(x) \ 1363911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((x)&HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_CVSD) 1364911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_U_LAW_SUPPORTED(x) \ 1365911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((x)&HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_U_LAW) 1366911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_A_LAW_SUPPORTED(x) \ 1367911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((x)&HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_A_LAW) 1368911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_TRANSPNT_SUPPORTED(x) \ 1369911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((x)&HCI_AIR_CODING_FORMAT_MASK) == HCI_AIR_CODING_FORMAT_TRANSPNT) 13705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Retransmit timer definitions in 0.625 */ 1372911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_AUTO_FLUSH_TOUT 0x07FF 1373911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_AUTO_FLUSH_TOUT 0 /* No auto flush */ 13745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Broadcast retransmitions */ 1376911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_NUM_BCAST_RETRAN 1 13775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define broadcast data types as passed in the hci data packet */ 1379911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DATA_POINT_TO_POINT 0x00 1380911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DATA_ACTIVE_BCAST 0x01 1381911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DATA_PICONET_BCAST 0x02 13825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Hold mode activity */ 1384911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAINTAIN_CUR_POWER_STATE 0x00 1385911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUSPEND_PAGE_SCAN 0x01 1386911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUSPEND_INQUIRY_SCAN 0x02 1387911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUSPEND_PERIODIC_INQUIRIES 0x04 13885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Default Link Supervision timeoout */ 1390911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_INACT_TOUT 0x7D00 /* BR/EDR (20 seconds) */ 1391911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DEFAULT_AMP_INACT_TOUT 0x3E80 /* AMP (10 seconds) */ 13925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read transmit power level parameter */ 1394911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CURRENT 0x00 1395911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_MAXIMUM 0x01 13965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Link types for connection complete event */ 1398911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_TYPE_SCO 0x00 1399911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_TYPE_ACL 0x01 1400911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_TYPE_ESCO 0x02 14015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Link Key Notification Event (Key Type) definitions */ 1403911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_COMBINATION 0x00 1404911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_LOCAL_UNIT 0x01 1405911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_REMOTE_UNIT 0x02 1406911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_DEBUG_COMB 0x03 1407911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_UNAUTH_COMB 0x04 1408911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_AUTH_COMB 0x05 1409911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_CHANGED_COMB 0x06 1410444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji#define HCI_LKEY_TYPE_UNAUTH_COMB_P_256 0x07 1411911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_AUTH_COMB_P_256 0x08 14125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Internal definitions - not used over HCI */ 1414911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_AMP_WIFI 0x80 1415911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_AMP_UWB 0x81 1416911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LKEY_TYPE_UNKNOWN 0xff 14175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read Local Version HCI Version return values (Command Complete Event) */ 1419911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VERSION_1_0B 0x00 1420911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_VERSION_1_1 0x01 14215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define an invalid value for a handle */ 1423911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INVALID_HANDLE 0xFFFF 14245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define max ammount of data in the HCI command */ 1426911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_COMMAND_SIZE 255 14275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the preamble length for all HCI Commands. 1429ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * This is 2-bytes for opcode and 1 byte for length 14305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1431911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCIC_PREAMBLE_SIZE 3 14325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the preamble length for all HCI Events 1434ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * This is 1-byte for opcode and 1 byte for length 14355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1436911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCIE_PREAMBLE_SIZE 2 1437911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SCO_PREAMBLE_SIZE 3 1438911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DATA_PREAMBLE_SIZE 4 14395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* local Bluetooth controller id for AMP HCI */ 1441911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LOCAL_BR_EDR_CONTROLLER_ID 0 14425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* controller id types for AMP HCI */ 1444911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONTROLLER_TYPE_BR_EDR 0 1445911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONTROLLER_TYPE_802_11 1 1446911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CONTROLLER_TYPE_ECMA 2 1447911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_CONTROLLER_TYPES 3 14485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1449ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* ConnectionLess Broadcast */ 1450911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CLB_DISABLE 0x00 1451911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CLB_ENABLE 0x01 14525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1453ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* ConnectionLess Broadcast Data fragment */ 1454911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CLB_FRAGMENT_CONT 0x00 1455911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CLB_FRAGMENT_START 0x01 1456911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CLB_FRAGMENT_END 0x02 1457911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CLB_FRAGMENT_SINGLE 0x03 14585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* AMP Controller Status codes 14605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1461911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_CTRLR_PHYSICALLY_DOWN 0 1462911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_CTRLR_USABLE_BY_BT 1 1463911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_CTRLR_UNUSABLE_FOR_BT 2 1464911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_CTRLR_LOW_CAP_FOR_BT 3 1465911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_CTRLR_MED_CAP_FOR_BT 4 1466911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_CTRLR_HIGH_CAP_FOR_BT 5 1467911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_CTRLR_FULL_CAP_FOR_BT 6 14685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1469911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MAX_AMP_STATUS_TYPES 7 14705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define the extended flow specification fields used by AMP */ 1472911d1ae03efec2d54c3b1b605589d790d1745488Myles Watsontypedef struct { 1473911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t id; 1474911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint8_t stype; 1475911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint16_t max_sdu_size; 1476911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint32_t sdu_inter_time; 1477911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint32_t access_latency; 1478911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson uint32_t flush_timeout; 14795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} tHCI_EXT_FLOW_SPEC; 14805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HCI message type definitions (for H4 messages) */ 1482911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCIT_TYPE_COMMAND 1 1483911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCIT_TYPE_ACL_DATA 2 1484911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCIT_TYPE_SCO_DATA 3 1485911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCIT_TYPE_EVENT 4 1486911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCIT_TYPE_LM_DIAG 7 1487911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCIT_TYPE_NFC 16 14885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIT_LM_DIAG_LENGTH 63 14905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Parameter information for HCI_BRCM_SET_ACL_PRIORITY */ 1492911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BRCM_ACL_PRIORITY_PARAM_SIZE 3 1493911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BRCM_ACL_PRIORITY_LOW 0x00 1494911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BRCM_ACL_PRIORITY_HIGH 0xFF 1495911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BRCM_SET_ACL_PRIORITY (0x0057 | HCI_GRP_VENDOR_SPECIFIC) 14965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 14975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Define values for LMP Test Control parameters 1498ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Test Scenario, Hopping Mode, Power Control Mode 14995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1500911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_TESTSC_PAUSE 0 1501911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_TESTSC_TXTEST_0 1 1502911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_TESTSC_TXTEST_1 2 1503911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_TESTSC_TXTEST_1010 3 15045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_PSRND_BITSEQ 4 15055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_CLOSEDLB_ACL 5 15065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_CLOSEDLB_SCO 6 1507911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_TESTSC_ACL_NOWHIT 7 1508911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_TESTSC_SCO_NOWHIT 8 1509911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_TESTSC_TXTEST_11110000 9 15105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_TESTCTL_TESTSC_EXITTESTMODE 255 15115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1512911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_HOPMOD_RXTX1FREQ 0 1513911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_HOPMOD_HOP_EURUSA 1 1514911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_HOPMOD_HOP_JAPAN 2 1515911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_HOPMOD_HOP_FRANCE 3 1516911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_HOPMOD_HOP_SPAIN 4 1517911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_HOPMOD_REDUCED_HOP 5 15185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1519911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_POWCTL_FIXEDTX_OP 0 1520911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_TESTCTL_POWCTL_ADAPTIVE 1 15215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1522c772b4bb7f15123ef54638a91eb1b64024f8aa7fZach Johnson// TODO(zachoverflow): remove this once broadcom specific hacks are removed 1523911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define LMP_COMPID_BROADCOM 15 1524c772b4bb7f15123ef54638a91eb1b64024f8aa7fZach Johnson 15255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1526ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Define the packet types in the packet header, and a couple extra 15275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1528911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_NULL 0x00 1529911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_POLL 0x01 1530911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_FHS 0x02 1531911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_DM1 0x03 15325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1533911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_DH1 0x04 1534911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_HV1 0x05 1535911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_HV2 0x06 1536911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_HV3 0x07 1537911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_DV 0x08 1538911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_AUX1 0x09 15395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1540911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_DM3 0x0a 1541911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_DH3 0x0b 15425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1543911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_DM5 0x0e 1544911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_DH5 0x0f 15455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1546911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_ID 0x10 /* Internally used packet types */ 1547911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_BAD 0x11 1548911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define PKT_TYPE_NONE 0x12 15495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1551ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Define packet size 15525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1553911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DM1_PACKET_SIZE 17 1554911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DH1_PACKET_SIZE 27 1555911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DM3_PACKET_SIZE 121 1556911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DH3_PACKET_SIZE 183 1557911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DM5_PACKET_SIZE 224 1558911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DH5_PACKET_SIZE 339 1559911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AUX1_PACKET_SIZE 29 1560911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HV1_PACKET_SIZE 10 1561911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HV2_PACKET_SIZE 20 1562911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HV3_PACKET_SIZE 30 1563911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DV_PACKET_SIZE 9 1564911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR2_DH1_PACKET_SIZE 54 1565911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR2_DH3_PACKET_SIZE 367 1566911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR2_DH5_PACKET_SIZE 679 1567911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR3_DH1_PACKET_SIZE 83 1568911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR3_DH3_PACKET_SIZE 552 1569911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR3_DH5_PACKET_SIZE 1021 15705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15713aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Feature Pages */ 1572f6ac424a81bad038bbf9a90c7c569dba81978f51Venkata Jagadeesh Garaga#define HCI_EXT_FEATURES_PAGE_MAX 3 // Parse feature pages 0-3 15733aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 1574911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_BYTES_PER_PAGE 8 15753aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 1576911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURES_KNOWN(x) \ 1577911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((x)[0] | (x)[1] | (x)[2] | (x)[3] | (x)[4] | (x)[5] | (x)[6] | (x)[7]) != 0) 15785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15793aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* 1580ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * LMP features encoding - page 0 15813aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*/ 15825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_PACKETS_MASK 0x01 1583911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_3_SLOT_PACKETS_OFF 0 1584911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_3_SLOT_PACKETS_SUPPORTED(x) \ 1585911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_3_SLOT_PACKETS_OFF] & HCI_FEATURE_3_SLOT_PACKETS_MASK) 15865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 15875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_5_SLOT_PACKETS_MASK 0x02 1588911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_5_SLOT_PACKETS_OFF 0 1589911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_5_SLOT_PACKETS_SUPPORTED(x) \ 1590911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_5_SLOT_PACKETS_OFF] & HCI_FEATURE_5_SLOT_PACKETS_MASK) 1591911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1592911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ENCRYPTION_MASK 0x04 1593911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ENCRYPTION_OFF 0 1594911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENCRYPTION_SUPPORTED(x) \ 1595911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ENCRYPTION_OFF] & HCI_FEATURE_ENCRYPTION_MASK) 1596911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1597911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SLOT_OFFSET_MASK 0x08 1598911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SLOT_OFFSET_OFF 0 1599911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SLOT_OFFSET_SUPPORTED(x) \ 1600911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_SLOT_OFFSET_OFF] & HCI_FEATURE_SLOT_OFFSET_MASK) 1601911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1602911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_TIMING_ACC_MASK 0x10 1603911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_TIMING_ACC_OFF 0 1604911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_TIMING_ACC_SUPPORTED(x) \ 1605911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_TIMING_ACC_OFF] & HCI_FEATURE_TIMING_ACC_MASK) 1606911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1607911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SWITCH_MASK 0x20 1608911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SWITCH_OFF 0 1609911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SWITCH_SUPPORTED(x) \ 1610911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_SWITCH_OFF] & HCI_FEATURE_SWITCH_MASK) 1611911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1612911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_HOLD_MODE_MASK 0x40 1613911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_HOLD_MODE_OFF 0 1614911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HOLD_MODE_SUPPORTED(x) \ 1615911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_HOLD_MODE_OFF] & HCI_FEATURE_HOLD_MODE_MASK) 1616911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1617911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SNIFF_MODE_MASK 0x80 1618911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SNIFF_MODE_OFF 0 1619911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SNIFF_MODE_SUPPORTED(x) \ 1620911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_SNIFF_MODE_OFF] & HCI_FEATURE_SNIFF_MODE_MASK) 1621911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1622911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_PARK_MODE_MASK 0x01 1623911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_PARK_MODE_OFF 1 1624911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PARK_MODE_SUPPORTED(x) \ 1625911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_PARK_MODE_OFF] & HCI_FEATURE_PARK_MODE_MASK) 1626911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1627911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_RSSI_MASK 0x02 1628911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_RSSI_OFF 1 1629911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RSSI_SUPPORTED(x) \ 1630911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_RSSI_OFF] & HCI_FEATURE_RSSI_MASK) 1631911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1632911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_CQM_DATA_RATE_MASK 0x04 1633911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_CQM_DATA_RATE_OFF 1 1634911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CQM_DATA_RATE_SUPPORTED(x) \ 1635911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_CQM_DATA_RATE_OFF] & HCI_FEATURE_CQM_DATA_RATE_MASK) 1636911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1637911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SCO_LINK_MASK 0x08 1638911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SCO_LINK_OFF 1 1639911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SCO_LINK_SUPPORTED(x) \ 1640911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_SCO_LINK_OFF] & HCI_FEATURE_SCO_LINK_MASK) 1641911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1642911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_HV2_PACKETS_MASK 0x10 1643911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_HV2_PACKETS_OFF 1 1644911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HV2_PACKETS_SUPPORTED(x) \ 1645911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_HV2_PACKETS_OFF] & HCI_FEATURE_HV2_PACKETS_MASK) 1646911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1647911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_HV3_PACKETS_MASK 0x20 1648911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_HV3_PACKETS_OFF 1 1649911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HV3_PACKETS_SUPPORTED(x) \ 1650911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_HV3_PACKETS_OFF] & HCI_FEATURE_HV3_PACKETS_MASK) 1651911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1652911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_U_LAW_MASK 0x40 1653911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_U_LAW_OFF 1 1654911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_U_LAW_SUPPORTED(x) \ 1655911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_U_LAW_OFF] & HCI_FEATURE_U_LAW_MASK) 1656911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1657911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_A_LAW_MASK 0x80 1658911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_A_LAW_OFF 1 1659911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_A_LAW_SUPPORTED(x) \ 1660911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_A_LAW_OFF] & HCI_FEATURE_A_LAW_MASK) 1661911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1662911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_CVSD_MASK 0x01 1663911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_CVSD_OFF 2 1664911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_CVSD_SUPPORTED(x) \ 1665911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_CVSD_OFF] & HCI_FEATURE_CVSD_MASK) 1666911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1667911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_PAGING_SCHEME_MASK 0x02 1668911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_PAGING_SCHEME_OFF 2 1669911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PAGING_SCHEME_SUPPORTED(x) \ 1670911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_PAGING_SCHEME_OFF] & HCI_FEATURE_PAGING_SCHEME_MASK) 1671911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1672911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_POWER_CTRL_MASK 0x04 1673911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_POWER_CTRL_OFF 2 1674911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_POWER_CTRL_SUPPORTED(x) \ 1675911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_POWER_CTRL_OFF] & HCI_FEATURE_POWER_CTRL_MASK) 1676911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1677911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_TRANSPNT_MASK 0x08 1678911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_TRANSPNT_OFF 2 1679911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_TRANSPNT_SUPPORTED(x) \ 1680911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_TRANSPNT_OFF] & HCI_FEATURE_TRANSPNT_MASK) 1681911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1682911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_FLOW_CTRL_LAG_MASK 0x70 1683911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_FLOW_CTRL_LAG_OFF 2 1684911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLOW_CTRL_LAG_VALUE(x) \ 1685911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (((x)[HCI_FEATURE_FLOW_CTRL_LAG_OFF] & HCI_FEATURE_FLOW_CTRL_LAG_MASK) >> 4) 1686911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1687911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_BROADCAST_ENC_MASK 0x80 1688911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_BROADCAST_ENC_OFF 2 1689911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_BCAST_ENC_SUPPORTED(x) \ 1690911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_BROADCAST_ENC_OFF] & HCI_FEATURE_BROADCAST_ENC_MASK) 1691911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1692911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SCATTER_MODE_MASK 0x01 1693911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SCATTER_MODE_OFF 3 1694911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_SCATTER_MODE_SUPPORTED(x) \ 1695911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_SCATTER_MODE_OFF] & HCI_FEATURE_SCATTER_MODE_MASK) 1696911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1697911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EDR_ACL_2MPS_MASK 0x02 1698911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EDR_ACL_2MPS_OFF 3 1699911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR_ACL_2MPS_SUPPORTED(x) \ 1700911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_EDR_ACL_2MPS_OFF] & HCI_FEATURE_EDR_ACL_2MPS_MASK) 1701911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1702911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EDR_ACL_3MPS_MASK 0x04 1703911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EDR_ACL_3MPS_OFF 3 1704911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR_ACL_3MPS_SUPPORTED(x) \ 1705911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_EDR_ACL_3MPS_OFF] & HCI_FEATURE_EDR_ACL_3MPS_MASK) 1706911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1707911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ENHANCED_INQ_MASK 0x08 1708911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ENHANCED_INQ_OFF 3 1709911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENHANCED_INQ_SUPPORTED(x) \ 1710911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ENHANCED_INQ_OFF] & HCI_FEATURE_ENHANCED_INQ_MASK) 1711911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1712911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_INTERLACED_INQ_SCAN_MASK 0x10 1713911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_INTERLACED_INQ_SCAN_OFF 3 1714911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_INTERLACED_INQ_SCAN_SUPPORTED(x) \ 1715911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_INTERLACED_INQ_SCAN_OFF] & \ 1716911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_FEATURE_INTERLACED_INQ_SCAN_MASK) 1717911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1718911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_INTERLACED_PAGE_SCAN_MASK 0x20 1719911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_INTERLACED_PAGE_SCAN_OFF 3 1720911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_INTERLACED_PAGE_SCAN_SUPPORTED(x) \ 1721911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_INTERLACED_PAGE_SCAN_OFF] & \ 1722911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_FEATURE_INTERLACED_PAGE_SCAN_MASK) 1723911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1724911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_INQ_RSSI_MASK 0x40 1725911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_INQ_RSSI_OFF 3 1726911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_INQ_RSSI_SUPPORTED(x) \ 1727911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_INQ_RSSI_OFF] & HCI_FEATURE_INQ_RSSI_MASK) 1728911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1729911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ESCO_EV3_MASK 0x80 1730911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ESCO_EV3_OFF 3 1731911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_EV3_SUPPORTED(x) \ 1732911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ESCO_EV3_OFF] & HCI_FEATURE_ESCO_EV3_MASK) 1733911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1734911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ESCO_EV4_MASK 0x01 1735911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ESCO_EV4_OFF 4 1736911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_EV4_SUPPORTED(x) \ 1737911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ESCO_EV4_OFF] & HCI_FEATURE_ESCO_EV4_MASK) 1738911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1739911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ESCO_EV5_MASK 0x02 1740911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ESCO_EV5_OFF 4 1741911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ESCO_EV5_SUPPORTED(x) \ 1742911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ESCO_EV5_OFF] & HCI_FEATURE_ESCO_EV5_MASK) 1743911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1744911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ABSENCE_MASKS_MASK 0x04 1745911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ABSENCE_MASKS_OFF 4 1746911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_ABSENCE_MASKS_SUPPORTED(x) \ 1747911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ABSENCE_MASKS_OFF] & HCI_FEATURE_ABSENCE_MASKS_MASK) 1748911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1749911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_AFH_CAP_SLAVE_MASK 0x08 1750911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_AFH_CAP_SLAVE_OFF 4 1751911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_AFH_CAP_SLAVE_SUPPORTED(x) \ 1752911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_AFH_CAP_SLAVE_OFF] & HCI_FEATURE_AFH_CAP_SLAVE_MASK) 17535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CLASS_SLAVE_MASK 0x10 1755911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_AFH_CLASS_SLAVE_OFF 4 1756911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_AFH_CLASS_SLAVE_SUPPORTED(x) \ 1757911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_AFH_CLASS_SLAVE_OFF] & HCI_FEATURE_AFH_CLASS_SLAVE_MASK) 17585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1759911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_BREDR_NOT_SPT_MASK 0x20 1760911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_BREDR_NOT_SPT_OFF 4 1761911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_BREDR_NOT_SPT_SUPPORTED(x) \ 1762911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_BREDR_NOT_SPT_OFF] & HCI_FEATURE_BREDR_NOT_SPT_MASK) 1763ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1764911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_LE_SPT_MASK 0x40 1765911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_LE_SPT_OFF 4 1766911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_SPT_SUPPORTED(x) \ 1767911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_LE_SPT_OFF] & HCI_FEATURE_LE_SPT_MASK) 17685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_EDR_ACL_MASK 0x80 1770911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_3_SLOT_EDR_ACL_OFF 4 1771911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_3_SLOT_EDR_ACL_SUPPORTED(x) \ 1772911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_3_SLOT_EDR_ACL_OFF] & HCI_FEATURE_3_SLOT_EDR_ACL_MASK) 17735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_5_SLOT_EDR_ACL_MASK 0x01 1775911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_5_SLOT_EDR_ACL_OFF 5 1776911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_5_SLOT_EDR_ACL_SUPPORTED(x) \ 1777911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_5_SLOT_EDR_ACL_OFF] & HCI_FEATURE_5_SLOT_EDR_ACL_MASK) 17785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SNIFF_SUB_RATE_MASK 0x02 1780911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SNIFF_SUB_RATE_OFF 5 1781911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SNIFF_SUB_RATE_SUPPORTED(x) \ 1782911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_SNIFF_SUB_RATE_OFF] & HCI_FEATURE_SNIFF_SUB_RATE_MASK) 17835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ATOMIC_ENCRYPT_MASK 0x04 1785911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ATOMIC_ENCRYPT_OFF 5 1786911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ATOMIC_ENCRYPT_SUPPORTED(x) \ 1787911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ATOMIC_ENCRYPT_OFF] & HCI_FEATURE_ATOMIC_ENCRYPT_MASK) 17885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1789911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_AFH_CAP_MASTR_MASK 0x08 1790911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_AFH_CAP_MASTR_OFF 5 1791911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_AFH_CAP_MASTR_SUPPORTED(x) \ 1792911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_AFH_CAP_MASTR_OFF] & HCI_FEATURE_AFH_CAP_MASTR_MASK) 17935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 17945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_AFH_CLASS_MASTR_MASK 0x10 1795911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_AFH_CLASS_MASTR_OFF 5 1796911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_AFH_CLASS_MASTR_SUPPORTED(x) \ 1797911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_AFH_CLASS_MASTR_OFF] & HCI_FEATURE_AFH_CLASS_MASTR_MASK) 17985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1799911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EDR_ESCO_2MPS_MASK 0x20 1800911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EDR_ESCO_2MPS_OFF 5 1801911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR_ESCO_2MPS_SUPPORTED(x) \ 1802911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_EDR_ESCO_2MPS_OFF] & HCI_FEATURE_EDR_ESCO_2MPS_MASK) 18035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1804911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EDR_ESCO_3MPS_MASK 0x40 1805911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EDR_ESCO_3MPS_OFF 5 1806911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EDR_ESCO_3MPS_SUPPORTED(x) \ 1807911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_EDR_ESCO_3MPS_OFF] & HCI_FEATURE_EDR_ESCO_3MPS_MASK) 18085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 18095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_3_SLOT_EDR_ESCO_MASK 0x80 1810911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_3_SLOT_EDR_ESCO_OFF 5 1811911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_3_SLOT_EDR_ESCO_SUPPORTED(x) \ 1812911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_3_SLOT_EDR_ESCO_OFF] & HCI_FEATURE_3_SLOT_EDR_ESCO_MASK) 18135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1814911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EXT_INQ_RSP_MASK 0x01 1815911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EXT_INQ_RSP_OFF 6 1816911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_INQ_RSP_SUPPORTED(x) \ 1817911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_EXT_INQ_RSP_OFF] & HCI_FEATURE_EXT_INQ_RSP_MASK) 18185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1819ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#if 1 /* TOKYO spec definition */ 1820ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_FEATURE_SIMUL_LE_BREDR_MASK 0x02 1821911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SIMUL_LE_BREDR_OFF 6 1822911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SIMUL_LE_BREDR_SUPPORTED(x) \ 1823911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_SIMUL_LE_BREDR_OFF] & HCI_FEATURE_SIMUL_LE_BREDR_MASK) 1824ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1825ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#else 18265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_ANUM_PIN_AWARE_MASK 0x02 1827911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ANUM_PIN_AWARE_OFF 6 1828911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ANUM_PIN_AWARE_SUPPORTED(x) \ 1829911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ANUM_PIN_AWARE_OFF] & HCI_FEATURE_ANUM_PIN_AWARE_MASK) 1830ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#endif 18315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1832911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ANUM_PIN_CAP_MASK 0x04 1833911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ANUM_PIN_CAP_OFF 6 1834911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ANUM_PIN_CAP_SUPPORTED(x) \ 1835911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ANUM_PIN_CAP_OFF] & HCI_FEATURE_ANUM_PIN_CAP_MASK) 18365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 18375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_SIMPLE_PAIRING_MASK 0x08 1838911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_SIMPLE_PAIRING_OFF 6 1839911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SIMPLE_PAIRING_SUPPORTED(x) \ 1840911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_SIMPLE_PAIRING_OFF] & HCI_FEATURE_SIMPLE_PAIRING_MASK) 18415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1842911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ENCAP_PDU_MASK 0x10 1843911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ENCAP_PDU_OFF 6 1844911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENCAP_PDU_SUPPORTED(x) \ 1845911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ENCAP_PDU_OFF] & HCI_FEATURE_ENCAP_PDU_MASK) 18465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1847911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ERROR_DATA_MASK 0x20 1848911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_ERROR_DATA_OFF 6 1849911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ERROR_DATA_SUPPORTED(x) \ 1850911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_ERROR_DATA_OFF] & HCI_FEATURE_ERROR_DATA_MASK) 18515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1852911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_NON_FLUSHABLE_PB_MASK 0x40 1853911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_NON_FLUSHABLE_PB_OFF 6 18545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 18559ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson/* This feature is causing frequent link drops when doing call switch with 18569ca07091a1f07ea201cee0504dab6a1d7073d429Myles Watson * certain av/hfp headsets */ 1857911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_NON_FLUSHABLE_PB_SUPPORTED(x) \ 1858911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson (0) //((x)[HCI_FEATURE_NON_FLUSHABLE_PB_OFF] & 1859911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson // HCI_FEATURE_NON_FLUSHABLE_PB_MASK) 18605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 18615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FEATURE_LINK_SUP_TO_EVT_MASK 0x01 1862911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_LINK_SUP_TO_EVT_OFF 7 1863911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_SUP_TO_EVT_SUPPORTED(x) \ 1864911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_LINK_SUP_TO_EVT_OFF] & HCI_FEATURE_LINK_SUP_TO_EVT_MASK) 18655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1866911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_INQ_RESP_TX_MASK 0x02 1867911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_INQ_RESP_TX_OFF 7 1868911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQ_RESP_TX_SUPPORTED(x) \ 1869911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_INQ_RESP_TX_OFF] & HCI_FEATURE_INQ_RESP_TX_MASK) 18705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1871911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EXTENDED_MASK 0x80 1872911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FEATURE_EXTENDED_OFF 7 1873911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LMP_EXTENDED_SUPPORTED(x) \ 1874911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_FEATURE_EXTENDED_OFF] & HCI_FEATURE_EXTENDED_MASK) 18755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 18765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1877ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * LMP features encoding - page 1 18785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 18795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EXT_FEATURE_SSP_HOST_MASK 0x01 1880911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SSP_HOST_OFF 0 1881911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SSP_HOST_SUPPORTED(x) \ 1882911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_SSP_HOST_OFF] & HCI_EXT_FEATURE_SSP_HOST_MASK) 18835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1884ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_EXT_FEATURE_LE_HOST_MASK 0x02 1885911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_LE_HOST_OFF 0 1886911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_HOST_SUPPORTED(x) \ 1887911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_LE_HOST_OFF] & HCI_EXT_FEATURE_LE_HOST_MASK) 1888ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1889ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCI_EXT_FEATURE_SIMUL_DUMO_HOST_MASK 0x04 1890911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SIMUL_DUMO_HOST_OFF 0 1891911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SIMUL_DUMO_HOST_SUPPORTED(x) \ 1892911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_SIMUL_DUMO_HOST_OFF] & \ 1893911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_EXT_FEATURE_SIMUL_DUMO_HOST_MASK) 1894ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 18957fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_EXT_FEATURE_SC_HOST_MASK 0x08 1896911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SC_HOST_OFF 0 1897911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SC_HOST_SUPPORTED(x) \ 1898911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_SC_HOST_OFF] & HCI_EXT_FEATURE_SC_HOST_MASK) 18997fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 19005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* 1901ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * LMP features encoding - page 2 19023aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*/ 1903911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_CSB_MASTER_MASK 0x01 1904911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_CSB_MASTER_OFF 0 1905911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CSB_MASTER_SUPPORTED(x) \ 1906911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_CSB_MASTER_OFF] & HCI_EXT_FEATURE_CSB_MASTER_MASK) 1907911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1908911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_CSB_SLAVE_MASK 0x02 1909911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_CSB_SLAVE_OFF 0 1910911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CSB_SLAVE_SUPPORTED(x) \ 1911911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_CSB_SLAVE_OFF] & HCI_EXT_FEATURE_CSB_SLAVE_MASK) 1912911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1913911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_MASK 0x04 1914911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_OFF 0 1915911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SYNC_TRAIN_MASTER_SUPPORTED(x) \ 1916911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_OFF] & \ 1917911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_EXT_FEATURE_SYNC_TRAIN_MASTER_MASK) 1918911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1919911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_MASK 0x08 1920911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_OFF 0 1921911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SYNC_SCAN_SLAVE_SUPPORTED(x) \ 1922911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_OFF] & \ 1923911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_EXT_FEATURE_SYNC_SCAN_SLAVE_MASK) 1924911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1925911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_INQ_RESP_NOTIF_MASK 0x10 1926911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_INQ_RESP_NOTIF_OFF 0 1927911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQ_RESP_NOTIF_SUPPORTED(x) \ 1928911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_INQ_RESP_NOTIF_OFF] & \ 1929911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_EXT_FEATURE_INQ_RESP_NOTIF_MASK) 1930911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1931911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SC_CTRLR_MASK 0x01 1932911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_SC_CTRLR_OFF 1 1933911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SC_CTRLR_SUPPORTED(x) \ 1934911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_SC_CTRLR_OFF] & HCI_EXT_FEATURE_SC_CTRLR_MASK) 1935911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 1936911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_PING_MASK 0x02 1937911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXT_FEATURE_PING_OFF 1 1938911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PING_SUPPORTED(x) \ 1939911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_EXT_FEATURE_PING_OFF] & HCI_EXT_FEATURE_PING_MASK) 19407fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 19413aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* 1942ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * LE features encoding - page 0 (the only page for now) 19433aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach*/ 19447fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* LE Encryption */ 1945911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_LE_ENCRYPTION_MASK 0x01 1946911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_LE_ENCRYPTION_OFF 0 1947911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_ENCRYPTION_SUPPORTED(x) \ 1948911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_LE_FEATURE_LE_ENCRYPTION_OFF] & HCI_LE_FEATURE_LE_ENCRYPTION_MASK) 19493aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 19507fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Connection Parameters Request Procedure */ 1951911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_CONN_PARAM_REQ_MASK 0x02 1952911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_CONN_PARAM_REQ_OFF 0 1953911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_CONN_PARAM_REQ_SUPPORTED(x) \ 1954911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_LE_FEATURE_CONN_PARAM_REQ_OFF] & HCI_LE_FEATURE_CONN_PARAM_REQ_MASK) 19557fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 19567fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Extended Reject Indication */ 1957911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_EXT_REJ_IND_MASK 0x04 1958911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_EXT_REJ_IND_OFF 0 1959911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_EXT_REJ_IND_SUPPORTED(x) \ 1960911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_LE_FEATURE_EXT_REJ_IND_OFF] & HCI_LE_FEATURE_EXT_REJ_IND_MASK) 19617fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 19627fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Slave-initiated Features Exchange */ 1963911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_MASK 0x08 1964911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_OFF 0 1965911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_SLAVE_INIT_FEAT_EXC_SUPPORTED(x) \ 1966911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_OFF] & \ 1967911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_LE_FEATURE_SLAVE_INIT_FEAT_EXC_MASK) 19683aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 1969444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* Enhanced privacy Feature: bit 6 */ 1970911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_ENHANCED_PRIVACY_MASK 0x40 1971911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_ENHANCED_PRIVACY_OFF 0 1972911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_ENHANCED_PRIVACY_SUPPORTED(x) \ 1973911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_LE_FEATURE_ENHANCED_PRIVACY_OFF] & \ 1974911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_LE_FEATURE_ENHANCED_PRIVACY_MASK) 1975444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 1976444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji/* Extended scanner filter policy : 7 */ 1977911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_MASK 0x80 1978911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_OFF 0 1979911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_EXT_SCAN_FILTER_POLICY_SUPPORTED(x) \ 1980911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_OFF] & \ 1981911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_LE_FEATURE_EXT_SCAN_FILTER_POLICY_MASK) 1982444a8da807abaf5f9e813ce70c56a79160495fb3Satya Calloji 1983636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera/* Slave-initiated Features Exchange */ 1984911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_DATA_LEN_EXT_MASK 0x20 1985911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_FEATURE_DATA_LEN_EXT_OFF 0 1986911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_DATA_LEN_EXT_SUPPORTED(x) \ 1987911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_LE_FEATURE_DATA_LEN_EXT_OFF] & HCI_LE_FEATURE_DATA_LEN_EXT_MASK) 1988636d6714a4c08dd99d2147dcce05dc3892e804b4Priti Aghera 19893aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* 1990ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Local Supported Commands encoding 19915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 1992911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_NUM_SUPP_COMMANDS_BYTES 64 19935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 19947fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* Supported Commands Byte 0 */ 19955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_INQUIRY_MASK 0x01 1996911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_INQUIRY_OFF 0 1997911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_SUPPORTED(x) \ 1998911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_INQUIRY_OFF] & HCI_SUPP_COMMANDS_INQUIRY_MASK) 19995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 20005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SUPP_COMMANDS_INQUIRY_CANCEL_MASK 0x02 2001911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_INQUIRY_CANCEL_OFF 0 2002911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_INQUIRY_CANCEL_SUPPORTED(x) \ 2003911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_INQUIRY_CANCEL_OFF] & \ 2004911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_INQUIRY_CANCEL_MASK) 2005911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2006911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_MASK 0x04 2007911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_OFF 0 2008911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PERIODIC_INQUIRY_SUPPORTED(x) \ 2009911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_OFF] & \ 2010911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_PERIODIC_INQUIRY_MASK) 2011911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2012911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_MASK 0x08 2013911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_OFF 0 2014911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXIT_PERIODIC_INQUIRY_SUPPORTED(x) \ 2015911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_OFF] & \ 2016911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_EXIT_PERIODIC_INQUIRY_MASK) 2017911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2018911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CREATE_CONN_MASK 0x10 2019911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CREATE_CONN_OFF 0 2020911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_CONN_SUPPORTED(x) \ 2021911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_CREATE_CONN_OFF] & HCI_SUPP_COMMANDS_CREATE_CONN_MASK) 2022911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2023911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DISCONNECT_MASK 0x20 2024911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DISCONNECT_OFF 0 2025911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISCONNECT_SUPPORTED(x) \ 2026911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_DISCONNECT_OFF] & HCI_SUPP_COMMANDS_DISCONNECT_MASK) 2027911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2028911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ADD_SCO_CONN_MASK 0x40 2029911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ADD_SCO_CONN_OFF 0 2030911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ADD_SCO_CONN_SUPPORTED(x) \ 2031911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ADD_SCO_CONN_OFF] & \ 2032911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ADD_SCO_CONN_MASK) 2033911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2034911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_MASK 0x80 2035911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_OFF 0 2036911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CANCEL_CREATE_CONN_SUPPORTED(x) \ 2037911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_OFF] & \ 2038911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_CANCEL_CREATE_CONN_MASK) 2039911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2040911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_MASK 0x01 2041911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_OFF 1 2042911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACCEPT_CONN_REQUEST_SUPPORTED(x) \ 2043911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_OFF] & \ 2044911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ACCEPT_CONN_REQUEST_MASK) 2045911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2046911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_MASK 0x02 2047911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_OFF 1 2048911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REJECT_CONN_REQUEST_SUPPORTED(x) \ 2049911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_OFF] & \ 2050911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_REJECT_CONN_REQUEST_MASK) 2051911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2052911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_MASK 0x04 2053911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_OFF 1 2054911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_KEY_REQUEST_REPLY_SUPPORTED(x) \ 2055911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_OFF] & \ 2056911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_REPLY_MASK) 2057911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2058911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_MASK 0x08 2059911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_OFF 1 2060911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LINK_KEY_REQUEST_NEG_REPLY_SUPPORTED(x) \ 2061911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_OFF] & \ 2062911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_LINK_KEY_REQUEST_NEG_REPLY_MASK) 2063911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2064911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_MASK 0x10 2065911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_OFF 1 2066911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PIN_CODE_REQUEST_REPLY_SUPPORTED(x) \ 2067911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_OFF] & \ 2068911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_REPLY_MASK) 2069911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2070911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_MASK 0x20 2071911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_OFF 1 2072911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PIN_CODE_REQUEST_NEG_REPLY_SUPPORTED(x) \ 2073911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_OFF] & \ 2074911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_PIN_CODE_REQUEST_NEG_REPLY_MASK) 2075911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2076911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_MASK 0x40 2077911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_OFF 1 2078911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANGE_CONN_PKT_TYPE_SUPPORTED(x) \ 2079911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_OFF] & \ 2080911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_CHANGE_CONN_PKT_TYPE_MASK) 2081911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2082911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_AUTH_REQUEST_MASK 0x80 2083911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_AUTH_REQUEST_OFF 1 2084911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AUTH_REQUEST_SUPPORTED(x) \ 2085911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_AUTH_REQUEST_OFF] & \ 2086911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_AUTH_REQUEST_MASK) 2087911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2088911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_MASK 0x01 2089911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_OFF 2 2090911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_CONN_ENCRYPTION_SUPPORTED(x) \ 2091911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_OFF] & \ 2092911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_CONN_ENCRYPTION_MASK) 2093911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2094911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_MASK 0x02 2095911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_OFF 2 2096911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CHANGE_CONN_LINK_KEY_SUPPORTED(x) \ 2097911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_OFF] & \ 2098911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_CHANGE_CONN_LINK_KEY_MASK) 2099911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2100911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_MASTER_LINK_KEY_MASK 0x04 2101911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_MASTER_LINK_KEY_OFF 2 2102911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_MASTER_LINK_KEY_SUPPORTED(x) \ 2103911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_MASTER_LINK_KEY_OFF] & \ 2104911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_MASTER_LINK_KEY_MASK) 2105911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2106911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_MASK 0x08 2107911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_OFF 2 2108911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REMOTE_NAME_REQUEST_SUPPORTED(x) \ 2109911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_OFF] & \ 2110911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_REMOTE_NAME_REQUEST_MASK) 2111911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2112911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_MASK 0x10 2113911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_OFF 2 2114911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CANCEL_REMOTE_NAME_REQUEST_SUPPORTED(x) \ 2115911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_OFF] & \ 2116911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_CANCEL_REMOTE_NAME_REQUEST_MASK) 2117911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2118911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_MASK 0x20 2119911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_OFF 2 2120911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_REMOTE_SUPP_FEATURES_SUPPORTED(x) \ 2121911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_OFF] & \ 2122911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_REMOTE_SUPP_FEATURES_MASK) 2123911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2124911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_MASK 0x40 2125911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_OFF 2 2126911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_REMOTE_EXT_FEATURES_SUPPORTED(x) \ 2127911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_OFF] & \ 2128911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_REMOTE_EXT_FEATURES_MASK) 2129911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2130911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_MASK 0x80 2131911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_OFF 2 2132911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_REMOTE_VER_INFO_SUPPORTED(x) \ 2133911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_OFF] & \ 2134911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_REMOTE_VER_INFO_MASK) 2135911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2136911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_MASK 0x01 2137911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_OFF 3 2138911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CLOCK_OFFSET_SUPPORTED(x) \ 2139911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_OFF] & \ 2140911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_CLOCK_OFFSET_MASK) 2141911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2142911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LMP_HANDLE_MASK 0x02 2143911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LMP_HANDLE_OFF 3 2144911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LMP_HANDLE_SUPPORTED(x) \ 2145911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LMP_HANDLE_OFF] & \ 2146911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LMP_HANDLE_MASK) 2147911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2148911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_HOLD_MODE_CMD_MASK 0x02 2149911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_HOLD_MODE_CMD_OFF 4 2150911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HOLD_MODE_CMD_SUPPORTED(x) \ 2151911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_HOLD_MODE_CMD_OFF] & \ 2152911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_HOLD_MODE_CMD_MASK) 2153911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2154911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_MASK 0x04 2155911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_OFF 4 2156911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SNIFF_MODE_CMD_SUPPORTED(x) \ 2157911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_OFF] & \ 2158911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SNIFF_MODE_CMD_MASK) 2159911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2160911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_MASK 0x08 2161911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_OFF 4 2162911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXIT_SNIFF_MODE_SUPPORTED(x) \ 2163911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_OFF] & \ 2164911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_EXIT_SNIFF_MODE_MASK) 2165911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2166911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_PARK_STATE_MASK 0x10 2167911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_PARK_STATE_OFF 4 2168911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_PARK_STATE_SUPPORTED(x) \ 2169911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_PARK_STATE_OFF] & HCI_SUPP_COMMANDS_PARK_STATE_MASK) 2170911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2171911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_EXIT_PARK_STATE_MASK 0x20 2172911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_EXIT_PARK_STATE_OFF 4 2173911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_EXIT_PARK_STATE_SUPPORTED(x) \ 2174911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_EXIT_PARK_STATE_OFF] & \ 2175911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_EXIT_PARK_STATE_MASK) 2176911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2177911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_QOS_SETUP_MASK 0x40 2178911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_QOS_SETUP_OFF 4 2179911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_QOS_SETUP_SUPPORTED(x) \ 2180911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_QOS_SETUP_OFF] & HCI_SUPP_COMMANDS_QOS_SETUP_MASK) 2181911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2182911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ROLE_DISCOVERY_MASK 0x80 2183911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ROLE_DISCOVERY_OFF 4 2184911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ROLE_DISCOVERY_SUPPORTED(x) \ 2185911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ROLE_DISCOVERY_OFF] & \ 2186911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ROLE_DISCOVERY_MASK) 2187911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2188911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SWITCH_ROLE_MASK 0x01 2189911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SWITCH_ROLE_OFF 5 2190911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SWITCH_ROLE_SUPPORTED(x) \ 2191911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SWITCH_ROLE_OFF] & HCI_SUPP_COMMANDS_SWITCH_ROLE_MASK) 2192911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2193911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_MASK 0x02 2194911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_OFF 5 2195911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LINK_POLICY_SET_SUPPORTED(x) \ 2196911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_OFF] & \ 2197911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LINK_POLICY_SET_MASK) 2198911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2199911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_MASK 0x04 2200911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_OFF 5 2201911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LINK_POLICY_SET_SUPPORTED(x) \ 2202911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_OFF] & \ 2203911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_LINK_POLICY_SET_MASK) 2204911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2205911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_MASK 0x08 2206911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_OFF 5 2207911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_DEF_LINK_POLICY_SET_SUPPORTED(x) \ 2208911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_OFF] & \ 2209911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_DEF_LINK_POLICY_SET_MASK) 2210911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2211911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_MASK 0x10 2212911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_OFF 5 2213911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_DEF_LINK_POLICY_SET_SUPPORTED(x) \ 2214911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_OFF] & \ 2215911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_DEF_LINK_POLICY_SET_MASK) 2216911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2217911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_MASK 0x20 2218911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_OFF 5 2219911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLOW_SPECIFICATION_SUPPORTED(x) \ 2220911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_OFF] & \ 2221911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_FLOW_SPECIFICATION_MASK) 2222911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2223911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_MASK 0x40 2224911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_OFF 5 2225911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_EVENT_MASK_SUPPORTED(x) \ 2226911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_EVENT_MASK_OFF] & \ 2227911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_EVENT_MASK_MASK) 2228911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2229911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_RESET_MASK 0x80 2230911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_RESET_OFF 5 2231911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RESET_SUPPORTED(x) \ 2232911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_RESET_OFF] & HCI_SUPP_COMMANDS_RESET_MASK) 2233911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2234911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_EVENT_FILTER_MASK 0x01 2235911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_EVENT_FILTER_OFF 6 2236911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_EVENT_FILTER_SUPPORTED(x) \ 2237911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_EVENT_FILTER_OFF] & \ 2238911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_EVENT_FILTER_MASK) 2239911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2240911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_FLUSH_MASK 0x02 2241911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_FLUSH_OFF 6 2242911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLUSH_SUPPORTED(x) \ 2243911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_FLUSH_OFF] & HCI_SUPP_COMMANDS_FLUSH_MASK) 2244911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2245911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PIN_TYPE_MASK 0x04 2246911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PIN_TYPE_OFF 6 2247911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PIN_TYPE_SUPPORTED(x) \ 2248911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_PIN_TYPE_OFF] & \ 2249911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_PIN_TYPE_MASK) 2250911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2251911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_MASK 0x08 2252911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_OFF 6 2253911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PIN_TYPE_SUPPORTED(x) \ 2254911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_OFF] & \ 2255911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_PIN_TYPE_MASK) 2256911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2257911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_MASK 0x10 2258911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_OFF 6 2259911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_NEW_UNIT_KEY_SUPPORTED(x) \ 2260911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_OFF] & \ 2261911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_CREATE_NEW_UNIT_KEY_MASK) 2262911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2263911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_MASK 0x20 2264911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_OFF 6 2265911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_STORED_LINK_KEY_SUPPORTED(x) \ 2266911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_OFF] & \ 2267911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_STORED_LINK_KEY_MASK) 2268911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2269911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_MASK 0x40 2270911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_OFF 6 2271911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_STORED_LINK_KEY_SUPPORTED(x) \ 2272911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_OFF] & \ 2273911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_STORED_LINK_KEY_MASK) 2274911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2275911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_MASK 0x80 2276911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_OFF 6 2277911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DELETE_STORED_LINK_KEY_SUPPORTED(x) \ 2278911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_OFF] & \ 2279911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_DELETE_STORED_LINK_KEY_MASK) 2280911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2281911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_MASK 0x01 2282911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_OFF 7 2283911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LOCAL_NAME_SUPPORTED(x) \ 2284911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_OFF] & \ 2285911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_LOCAL_NAME_MASK) 2286911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2287911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_NAME_MASK 0x02 2288911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_NAME_OFF 7 2289911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_NAME_SUPPORTED(x) \ 2290911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_NAME_OFF] & \ 2291911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_NAME_MASK) 2292911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2293911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_MASK 0x04 2294911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_OFF 7 2295911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CONN_ACCEPT_TOUT_SUPPORTED(x) \ 2296911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_OFF] & \ 2297911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_CONN_ACCEPT_TOUT_MASK) 2298911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2299911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_MASK 0x08 2300911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_OFF 7 2301911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_CONN_ACCEPT_TOUT_SUPPORTED(x) \ 2302911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_OFF] & \ 2303911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_CONN_ACCEPT_TOUT_MASK) 2304911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2305911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_TOUT_MASK 0x10 2306911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_TOUT_OFF 7 2307911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGE_TOUT_SUPPORTED(x) \ 2308911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_PAGE_TOUT_OFF] & \ 2309911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_PAGE_TOUT_MASK) 2310911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2311911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_MASK 0x20 2312911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_OFF 7 2313911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGE_TOUT_SUPPORTED(x) \ 2314911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_OFF] & \ 2315911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_PAGE_TOUT_MASK) 2316911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2317911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_MASK 0x40 2318911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_OFF 7 2319911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SCAN_ENABLE_SUPPORTED(x) \ 2320911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_OFF] & \ 2321911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_SCAN_ENABLE_MASK) 2322911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2323911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_MASK 0x80 2324911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_OFF 7 2325911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SCAN_ENABLE_SUPPORTED(x) \ 2326911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_OFF] & \ 2327911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_SCAN_ENABLE_MASK) 2328911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2329911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_MASK 0x01 2330911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_OFF 8 2331911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGE_SCAN_ACTIVITY_SUPPORTED(x) \ 2332911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_OFF] & \ 2333911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_PAGE_SCAN_ACTIVITY_MASK) 2334911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2335911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_MASK 0x02 2336911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_OFF 8 2337911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGE_SCAN_ACTIVITY_SUPPORTED(x) \ 2338911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_OFF] & \ 2339911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_ACTIVITY_MASK) 2340911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2341911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_MASK 0x04 2342911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_OFF 8 2343911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_INQURIY_SCAN_ACTIVITY_SUPPORTED(x) \ 2344911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_OFF] & \ 2345911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_INQURIY_SCAN_ACTIVITY_MASK) 2346911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2347911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_MASK 0x08 2348911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_OFF 8 2349911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_INQURIY_SCAN_ACTIVITY_SUPPORTED(x) \ 2350911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_OFF] & \ 2351911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_INQURIY_SCAN_ACTIVITY_MASK) 2352911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2353911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_MASK 0x10 2354911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_OFF 8 2355911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AUTH_ENABLE_SUPPORTED(x) \ 2356911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_OFF] & \ 2357911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_AUTH_ENABLE_MASK) 2358911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2359911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_MASK 0x20 2360911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_OFF 8 2361911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_AUTH_ENABLE_SUPPORTED(x) \ 2362911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_OFF] & \ 2363911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_AUTH_ENABLE_MASK) 2364911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2365911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_MASK 0x40 2366911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_OFF 8 2367911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_ENCRYPT_ENABLE_SUPPORTED(x) \ 2368911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_OFF] & \ 2369911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_ENCRYPT_ENABLE_MASK) 2370911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2371911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_MASK 0x80 2372911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_OFF 8 2373911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_ENCRYPT_ENABLE_SUPPORTED(x) \ 2374911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_OFF] & \ 2375911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_ENCRYPT_ENABLE_MASK) 2376911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2377911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_MASK 0x01 2378911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_OFF 9 2379911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CLASS_DEVICE_SUPPORTED(x) \ 2380911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_OFF] & \ 2381911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_CLASS_DEVICE_MASK) 2382911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2383911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_MASK 0x02 2384911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_OFF 9 2385911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_CLASS_DEVICE_SUPPORTED(x) \ 2386911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_OFF] & \ 2387911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_CLASS_DEVICE_MASK) 2388911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2389911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_VOICE_SETTING_MASK 0x04 2390911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_VOICE_SETTING_OFF 9 2391911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_VOICE_SETTING_SUPPORTED(x) \ 2392911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_VOICE_SETTING_OFF] & \ 2393911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_VOICE_SETTING_MASK) 2394911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2395911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_MASK 0x08 2396911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_OFF 9 2397911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_VOICE_SETTING_SUPPORTED(x) \ 2398911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_OFF] & \ 2399911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_VOICE_SETTING_MASK) 2400911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2401911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_MASK 0x10 2402911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_OFF 9 2403911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AUTO_FLUSH_TOUT_SUPPORTED(x) \ 2404911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_OFF] & \ 2405911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_AUTO_FLUSH_TOUT_MASK) 2406911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2407911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_MASK 0x20 2408911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_OFF 9 2409911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_AUTO_FLUSH_TOUT_SUPPORTED(x) \ 2410911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_OFF] & \ 2411911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_AUTO_FLUSH_TOUT_MASK) 2412911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2413911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_MASK 0x40 2414911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_OFF 9 2415911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_NUM_BROAD_RETRANS_SUPPORTED(x) \ 2416911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_OFF] & \ 2417911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_NUM_BROAD_RETRANS_MASK) 2418911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2419911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_MASK 0x80 2420911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_OFF 9 2421911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_NUM_BROAD_RETRANS_SUPPORTED(x) \ 2422911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_OFF] & \ 2423911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_NUM_BROAD_RETRANS_MASK) 2424911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2425911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_MASK 0x01 2426911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_OFF 10 2427911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_HOLD_MODE_ACTIVITY_SUPPORTED(x) \ 2428911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_OFF] & \ 2429911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_HOLD_MODE_ACTIVITY_MASK) 2430911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2431911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_MASK 0x02 2432911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_OFF 10 2433911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_HOLD_MODE_ACTIVITY_SUPPORTED(x) \ 2434911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_OFF] & \ 2435911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_HOLD_MODE_ACTIVITY_MASK) 2436911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2437911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_MASK 0x04 2438911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_OFF 10 2439911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_TRANS_PWR_LEVEL_SUPPORTED(x) \ 2440911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_OFF] & \ 2441911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_TRANS_PWR_LEVEL_MASK) 2442911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2443911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_MASK 0x08 2444911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_OFF 10 2445911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SYNCH_FLOW_CTRL_ENABLE_SUPPORTED(x) \ 2446911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_OFF] & \ 2447911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_SYNCH_FLOW_CTRL_ENABLE_MASK) 2448911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2449911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_MASK 0x10 2450911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_OFF 10 2451911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SYNCH_FLOW_CTRL_ENABLE_SUPPORTED(x) \ 2452911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_OFF] & \ 2453911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_SYNCH_FLOW_CTRL_ENABLE_MASK) 2454911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2455911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_MASK 0x20 2456911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_OFF 10 2457911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_HOST_CTRLR_TO_HOST_FC_SUPPORTED(x) \ 2458911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_OFF] & \ 2459911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_HOST_CTRLR_TO_HOST_FC_MASK) 2460911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2461911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_MASK 0x40 2462911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_OFF 10 2463911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HOST_BUFFER_SIZE_SUPPORTED(x) \ 2464911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_OFF] & \ 2465911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_HOST_BUFFER_SIZE_MASK) 2466911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2467911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_MASK 0x80 2468911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_OFF 10 2469911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_HOST_NUM_COMPLETED_PKTS_SUPPORTED(x) \ 2470911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_OFF] & \ 2471911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_HOST_NUM_COMPLETED_PKTS_MASK) 2472911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2473911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_MASK 0x01 2474911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_OFF 11 2475911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LINK_SUP_TOUT_SUPPORTED(x) \ 2476911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_OFF] & \ 2477911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LINK_SUP_TOUT_MASK) 2478911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2479911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_MASK 0x02 2480911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_OFF 11 2481911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LINK_SUP_TOUT_SUPPORTED(x) \ 2482911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_OFF] & \ 2483911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_LINK_SUP_TOUT_MASK) 2484911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2485911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_MASK 0x04 2486911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_OFF 11 2487911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_NUM_SUPP_IAC_SUPPORTED(x) \ 2488911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_OFF] & \ 2489911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_NUM_SUPP_IAC_MASK) 2490911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2491911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_MASK 0x08 2492911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_OFF 11 2493911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_CURRENT_IAC_LAP_SUPPORTED(x) \ 2494911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_OFF] & \ 2495911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_CURRENT_IAC_LAP_MASK) 2496911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2497911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_MASK 0x10 2498911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_OFF 11 2499911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_CURRENT_IAC_LAP_SUPPORTED(x) \ 2500911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_OFF] & \ 2501911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_CURRENT_IAC_LAP_MASK) 2502911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2503911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_MASK 0x20 2504911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_OFF 11 2505911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGE_SCAN_PER_MODE_SUPPORTED(x) \ 2506911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_OFF] & \ 2507911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_PAGE_SCAN_PER_MODE_MASK) 2508911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2509911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_MASK 0x40 2510911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_OFF 11 2511911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGE_SCAN_PER_MODE_SUPPORTED(x) \ 2512911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_OFF] & \ 2513911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_PER_MODE_MASK) 2514911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2515911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_MASK 0x80 2516911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_OFF 11 2517911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGE_SCAN_MODE_SUPPORTED(x) \ 2518911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_OFF] & \ 2519911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_PAGE_SCAN_MODE_MASK) 2520911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2521911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_MASK 0x01 2522911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_OFF 12 2523911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGE_SCAN_MODE_SUPPORTED(x) \ 2524911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_OFF] & \ 2525911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_MODE_MASK) 2526911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2527911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_MASK 0x02 2528911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_OFF 12 2529911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_AFH_CHNL_CLASS_SUPPORTED(x) \ 2530911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_OFF] & \ 2531911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_AFH_CHNL_CLASS_MASK) 2532911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2533911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_MASK 0x10 2534911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_OFF 12 2535911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_INQUIRY_SCAN_TYPE_SUPPORTED(x) \ 2536911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_OFF] & \ 2537911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_INQUIRY_SCAN_TYPE_MASK) 2538911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2539911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_MASK 0x20 2540911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_OFF 12 2541911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_INQUIRY_SCAN_TYPE_SUPPORTED(x) \ 2542911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_OFF] & \ 2543911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_INQUIRY_SCAN_TYPE_MASK) 2544911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2545911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_MASK 0x40 2546911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_OFF 12 2547911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_INQUIRY_MODE_SUPPORTED(x) \ 2548911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_OFF] & \ 2549911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_INQUIRY_MODE_MASK) 2550911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2551911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_MASK 0x80 2552911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_OFF 12 2553911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_INQUIRY_MODE_SUPPORTED(x) \ 2554911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_OFF] & \ 2555911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_INQUIRY_MODE_MASK) 2556911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2557911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_MASK 0x01 2558911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_OFF 13 2559911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_PAGE_SCAN_TYPE_SUPPORTED(x) \ 2560911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_OFF] & \ 2561911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_PAGE_SCAN_TYPE_MASK) 2562911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2563911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_MASK 0x02 2564911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_OFF 13 2565911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_PAGE_SCAN_TYPE_SUPPORTED(x) \ 2566911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_OFF] & \ 2567911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_PAGE_SCAN_TYPE_MASK) 2568911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2569911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_MASK 0x04 2570911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_OFF 13 2571911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AFH_CHNL_ASSESS_MODE_SUPPORTED(x) \ 2572911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_OFF] & \ 2573911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_AFH_CHNL_ASSESS_MODE_MASK) 2574911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2575911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_MASK 0x08 2576911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_OFF 13 2577911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_AFH_CHNL_ASSESS_MODE_SUPPORTED(x) \ 2578911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_OFF] & \ 2579911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_AFH_CHNL_ASSESS_MODE_MASK) 2580911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2581911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_MASK 0x08 2582911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_OFF 14 2583911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_VER_INFO_SUPPORTED(x) \ 2584911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_OFF] & \ 2585911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_VER_INFO_MASK) 2586911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2587911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_MASK 0x10 2588911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_OFF 14 2589911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_SUP_CMDS_SUPPORTED(x) \ 2590911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_OFF] & \ 2591911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_SUP_CMDS_MASK) 2592911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2593911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_MASK 0x20 2594911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_OFF 14 2595911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_SUPP_FEATURES_SUPPORTED(x) \ 2596911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_OFF] & \ 2597911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_SUPP_FEATURES_MASK) 2598911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2599911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_MASK 0x40 2600911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_OFF 14 2601911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_EXT_FEATURES_SUPPORTED(x) \ 2602911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_OFF] & \ 2603911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_EXT_FEATURES_MASK) 2604911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2605911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_MASK 0x80 2606911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_OFF 14 2607911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_BUFFER_SIZE_SUPPORTED(x) \ 2608911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_OFF] & \ 2609911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_BUFFER_SIZE_MASK) 2610911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2611911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_MASK 0x01 2612911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_OFF 15 2613911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_COUNTRY_CODE_SUPPORTED(x) \ 2614911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_OFF] & \ 2615911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_COUNTRY_CODE_MASK) 2616911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2617911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_BD_ADDR_MASK 0x02 2618911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_BD_ADDR_OFF 15 2619911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_BD_ADDR_SUPPORTED(x) \ 2620911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_BD_ADDR_OFF] & \ 2621911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_BD_ADDR_MASK) 2622911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2623911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_MASK 0x04 2624911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_OFF 15 2625911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_FAIL_CONTACT_CNTR_SUPPORTED(x) \ 2626911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_OFF] & \ 2627911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_FAIL_CONTACT_CNTR_MASK) 2628911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2629911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_MASK 0x08 2630911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_OFF 15 2631911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RESET_FAIL_CONTACT_CNTR_SUPPORTED(x) \ 2632911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_OFF] & \ 2633911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_RESET_FAIL_CONTACT_CNTR_MASK) 2634911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2635911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_GET_LINK_QUALITY_MASK 0x10 2636911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_GET_LINK_QUALITY_OFF 15 2637911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GET_LINK_QUALITY_SUPPORTED(x) \ 2638911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_GET_LINK_QUALITY_OFF] & \ 2639911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_GET_LINK_QUALITY_MASK) 2640911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2641911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_RSSI_MASK 0x20 2642911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_RSSI_OFF 15 2643911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_RSSI_SUPPORTED(x) \ 2644911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_RSSI_OFF] & HCI_SUPP_COMMANDS_READ_RSSI_MASK) 2645911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2646911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_MASK 0x40 2647911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_OFF 15 2648911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AFH_CH_MAP_SUPPORTED(x) \ 2649911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_OFF] & \ 2650911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_AFH_CH_MAP_MASK) 2651911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2652911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_BD_CLOCK_MASK 0x80 2653911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_BD_CLOCK_OFF 15 2654911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_BD_CLOCK_SUPPORTED(x) \ 2655911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_BD_CLOCK_OFF] & \ 2656911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_BD_CLOCK_MASK) 2657911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2658911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_MASK 0x01 2659911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_OFF 16 2660911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOOPBACK_MODE_SUPPORTED(x) \ 2661911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_OFF] & \ 2662911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOOPBACK_MODE_MASK) 2663911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2664911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_MASK 0x02 2665911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_OFF 16 2666911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LOOPBACK_MODE_SUPPORTED(x) \ 2667911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_OFF] & \ 2668911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_LOOPBACK_MODE_MASK) 2669911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2670911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_MASK 0x04 2671911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_OFF 16 2672911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENABLE_DEV_UNDER_TEST_SUPPORTED(x) \ 2673911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_OFF] & \ 2674911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ENABLE_DEV_UNDER_TEST_MASK) 2675911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2676911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_MASK 0x08 2677911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_OFF 16 2678911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SETUP_SYNCH_CONN_SUPPORTED(x) \ 2679911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_OFF] & \ 2680911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SETUP_SYNCH_CONN_MASK) 2681911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2682911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_MASK 0x10 2683911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_OFF 16 2684911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACCEPT_SYNCH_CONN_SUPPORTED(x) \ 2685911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_OFF] & \ 2686911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ACCEPT_SYNCH_CONN_MASK) 2687911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2688911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_MASK 0x20 2689911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_OFF 16 2690911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REJECT_SYNCH_CONN_SUPPORTED(x) \ 2691911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_OFF] & \ 2692911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_REJECT_SYNCH_CONN_MASK) 2693911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2694911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_MASK 0x01 2695911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_OFF 17 2696911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_EXT_INQUIRY_RESP_SUPPORTED(x) \ 2697911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_OFF] & \ 2698911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_EXT_INQUIRY_RESP_MASK) 2699911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2700911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_MASK 0x02 2701911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_OFF 17 2702911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_EXT_INQUIRY_RESP_SUPPORTED(x) \ 2703911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_OFF] & \ 2704911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_EXT_INQUIRY_RESP_MASK) 2705911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2706911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_MASK 0x04 2707911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_OFF 17 2708911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REFRESH_ENCRYPTION_KEY_SUPPORTED(x) \ 2709911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_OFF] & \ 2710911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_REFRESH_ENCRYPTION_KEY_MASK) 27115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 27125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Octet 17, bit 3 is reserved */ 27135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2714911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_MASK 0x10 2715911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_OFF 17 2716911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SNIFF_SUB_RATE_CMD_SUPPORTED(x) \ 2717911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_OFF] & \ 2718911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SNIFF_SUB_RATE_MASK) 2719911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2720911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_MASK 0x20 2721911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_OFF 17 2722911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SIMPLE_PAIRING_MODE_SUPPORTED(x) \ 2723911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_OFF] & \ 2724911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_SIMPLE_PAIRING_MODE_MASK) 2725911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2726911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_MASK 0x40 2727911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_OFF 17 2728911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SIMPLE_PAIRING_MODE_SUPPORTED(x) \ 2729911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_OFF] & \ 2730911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_MODE_MASK) 2731911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2732911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_MASK 0x80 2733911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_OFF 17 2734911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_OOB_DATA_SUPPORTED(x) \ 2735911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_OFF] & \ 2736911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_OOB_DATA_MASK) 2737911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2738911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_MASK 0x01 2739911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_OFF 18 2740911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_INQUIRY_RESPONSE_TX_POWER_SUPPORTED(x) \ 2741911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_OFF] & \ 2742911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_INQUIRY_RESPONSE_TX_POWER_MASK) 2743911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2744911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_MASK 0x02 2745911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_OFF 18 2746911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_INQUIRY_RESPONSE_TX_POWER_SUPPORTED(x) \ 2747911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_OFF] & \ 2748911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_INQUIRY_RESPONSE_TX_POWER_MASK) 2749911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2750911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK 0x04 2751911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF 18 2752911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_SUPPORTED(x) \ 2753911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF] & \ 2754911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK) 2755911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2756911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK 0x08 2757911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF 18 2758911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_SUPPORTED(x) \ 2759911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_OFF] & \ 2760911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING_MASK) 2761911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2762911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_MASK 0x80 2763911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_OFF 18 2764911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAPABILITY_REQUEST_REPLY_SUPPORTED(x) \ 2765911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_OFF] & \ 2766911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_IO_CAPABILITY_REQUEST_REPLY_MASK) 2767911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2768911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_MASK 0x01 2769911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_OFF 19 2770911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_CONFIRMATION_REQUEST_REPLY_SUPPORTED(x) \ 2771911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_OFF] & \ 2772911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_REPLY_MASK) 2773911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2774911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_MASK 0x02 2775911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_OFF 19 2776911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_CONFIRMATION_REQUEST_NEG_REPLY_SUPPORTED(x) \ 2777911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_OFF] & \ 2778911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_USER_CONFIRMATION_REQUEST_NEG_REPLY_MASK) 2779911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2780911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_MASK 0x04 2781911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_OFF 19 2782911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_PASSKEY_REQUEST_REPLY_SUPPORTED(x) \ 2783911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_OFF] & \ 2784911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_REPLY_MASK) 2785911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2786911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_MASK 0x08 2787911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_OFF 19 2788911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_USER_PASSKEY_REQUEST_NEG_REPLY_SUPPORTED(x) \ 2789911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_OFF] & \ 2790911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_USER_PASSKEY_REQUEST_NEG_REPLY_MASK) 2791911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2792911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_MASK 0x10 2793911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_OFF 19 2794911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REMOTE_OOB_DATA_REQUEST_REPLY_SUPPORTED(x) \ 2795911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_OFF] & \ 2796911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_REPLY_MASK) 2797911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2798911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_MASK 0x20 2799911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_OFF 19 2800911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SIMPLE_PAIRING_DBG_MODE_SUPPORTED(x) \ 2801911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_OFF] & \ 2802911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_SIMPLE_PAIRING_DBG_MODE_MASK) 2803911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2804911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENHANCED_FLUSH_MASK 0x40 2805911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENHANCED_FLUSH_OFF 19 2806911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENHANCED_FLUSH_SUPPORTED(x) \ 2807911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ENHANCED_FLUSH_OFF] & \ 2808911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ENHANCED_FLUSH_MASK) 2809911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2810911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_MASK 0x80 2811911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_OFF 19 2812911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_SUPPORTED(x) \ 2813911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_OFF] & \ 2814911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_REMOTE_OOB_DATA_REQUEST_NEG_REPLY_MASK) 28155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 28165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 20) */ 2817911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_MASK 0x04 2818911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_OFF 20 2819911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SEND_NOTIF_SUPPORTED(x) \ 2820911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_OFF] & \ 2821911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SEND_KEYPRESS_NOTIF_MASK) 2822911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2823911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_MASK 0x08 2824911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_OFF 20 2825911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_IO_CAP_REQ_NEG_REPLY_SUPPORTED(x) \ 2826911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_OFF] & \ 2827911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_IO_CAP_REQ_NEG_REPLY_MASK) 2828911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2829911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_MASK 0x10 2830911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_OFF 20 2831911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_ENCR_KEY_SIZE_SUPPORTED(x) \ 2832911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_OFF] & \ 2833911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_ENCR_KEY_SIZE_MASK) 28345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 28355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 21) */ 2836911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_MASK 0x01 2837911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_OFF 21 2838911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_PHYSICAL_LINK_SUPPORTED(x) \ 2839911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_OFF] & \ 2840911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_CREATE_PHYSICAL_LINK_MASK) 2841911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2842911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_MASK 0x02 2843911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_OFF 21 2844911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACCEPT_PHYSICAL_LINK_SUPPORTED(x) \ 2845911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_OFF] & \ 2846911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ACCEPT_PHYSICAL_LINK_MASK) 2847911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2848911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_MASK 0x04 2849911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_OFF 21 2850911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISCONNECT_PHYSICAL_LINK_SUPPORTED(x) \ 2851911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_OFF] & \ 2852911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_DISCONNECT_PHYSICAL_LINK_MASK) 2853911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2854911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_MASK 0x08 2855911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_OFF 21 2856911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_CREATE_LOGICAL_LINK_SUPPORTED(x) \ 2857911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_OFF] & \ 2858911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_CREATE_LOGICAL_LINK_MASK) 2859911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2860911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_MASK 0x10 2861911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_OFF 21 2862911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ACCEPT_LOGICAL_LINK_SUPPORTED(x) \ 2863911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_OFF] & \ 2864911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ACCEPT_LOGICAL_LINK_MASK) 2865911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2866911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_MASK 0x20 2867911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_OFF 21 2868911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DISCONNECT_LOGICAL_LINK_SUPPORTED(x) \ 2869911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_OFF] & \ 2870911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_DISCONNECT_LOGICAL_LINK_MASK) 2871911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2872911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_MASK 0x40 2873911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_OFF 21 2874911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LOGICAL_LINK_CANCEL_SUPPORTED(x) \ 2875911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_OFF] & \ 2876911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_LOGICAL_LINK_CANCEL_MASK) 2877911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2878911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_MASK 0x80 2879911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_OFF 21 2880911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_FLOW_SPEC_MODIFY_SUPPORTED(x) \ 2881911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_OFF] & \ 2882911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_FLOW_SPEC_MODIFY_MASK) 28835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 28845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 22) */ 2885911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK 0x01 2886911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF 22 2887911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_SUPPORTED(x) \ 2888911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF] & \ 2889911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK) 2890911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2891911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK 0x02 2892911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF 22 2893911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_SUPPORTED(x) \ 2894911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_OFF] & \ 2895911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_MASK) 2896911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2897911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_MASK 0x04 2898911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_OFF 22 2899911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_EVENT_MASK_PAGE_2_SUPPORTED(x) \ 2900911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_OFF] & \ 2901911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_EVENT_MASK_PAGE_2_MASK) 2902911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2903911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCATION_DATA_MASK 0x08 2904911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCATION_DATA_OFF 22 2905911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCATION_DATA_SUPPORTED(x) \ 2906911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCATION_DATA_OFF] & \ 2907911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCATION_DATA_MASK) 2908911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2909911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_MASK 0x10 2910911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_OFF 22 2911911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_LOCATION_DATA_SUPPORTED(x) \ 2912911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_OFF] & \ 2913911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_LOCATION_DATA_MASK) 2914911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2915911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_MASK 0x20 2916911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_OFF 22 2917911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_AMP_INFO_SUPPORTED(x) \ 2918911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_OFF] & \ 2919911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_AMP_INFO_MASK) 2920911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2921911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_MASK 0x40 2922911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_OFF 22 2923911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_AMP_ASSOC_SUPPORTED(x) \ 2924911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_OFF] & \ 2925911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_AMP_ASSOC_MASK) 2926911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2927911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_MASK 0x80 2928911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_OFF 22 2929911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_REMOTE_AMP_ASSOC_SUPPORTED(x) \ 2930911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_OFF] & \ 2931911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_REMOTE_AMP_ASSOC_MASK) 29325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 29335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 23) */ 2934911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_MASK 0x01 2935911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_OFF 23 2936911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_FLOW_CONTROL_MODE_SUPPORTED(x) \ 2937911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_OFF] & \ 2938911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_FLOW_CONTROL_MODE_MASK) 2939911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2940911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_MASK 0x02 2941911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_OFF 23 2942911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_FLOW_CONTROL_MODE_SUPPORTED(x) \ 2943911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_OFF] & \ 2944911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_FLOW_CONTROL_MODE_MASK) 2945911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2946911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_MASK 0x04 2947911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_OFF 23 2948911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_DATA_BLOCK_SIZE_SUPPORTED(x) \ 2949911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_OFF] & \ 2950911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_DATA_BLOCK_SIZE_MASK) 2951911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2952911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_MASK 0x20 2953911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_OFF 23 2954911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_ENABLE_AMP_RCVR_REPORTS_SUPPORTED(x) \ 2955911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_OFF] & \ 2956911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ENABLE_AMP_RCVR_REPORTS_MASK) 2957911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2958911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_AMP_TEST_END_MASK 0x40 2959911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_AMP_TEST_END_OFF 23 2960911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_TEST_END_SUPPORTED(x) \ 2961911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_AMP_TEST_END_OFF] & \ 2962911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_AMP_TEST_END_MASK) 2963911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2964911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_AMP_TEST_MASK 0x80 2965911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_AMP_TEST_OFF 23 2966911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_AMP_TEST_SUPPORTED(x) \ 2967911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_AMP_TEST_OFF] & HCI_SUPP_COMMANDS_AMP_TEST_MASK) 29685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 29695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Supported Commands (Byte 24) */ 2970911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_MASK 0x01 2971911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_OFF 24 2972911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_TRANSMIT_POWER_LEVEL_SUPPORTED(x) \ 2973911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_OFF] & \ 2974911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_TRANSMIT_POWER_LEVEL_MASK) 2975911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2976911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_MASK 0x04 2977911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_OFF 24 2978911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_BE_FLUSH_TOUT_SUPPORTED(x) \ 2979911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_OFF] & \ 2980911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_BE_FLUSH_TOUT_MASK) 2981911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2982911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_MASK 0x08 2983911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_OFF 24 2984911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_BE_FLUSH_TOUT_SUPPORTED(x) \ 2985911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_OFF] & \ 2986911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_BE_FLUSH_TOUT_MASK) 2987911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 2988911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_MASK 0x10 2989911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_OFF 24 2990911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SHORT_RANGE_MODE_SUPPORTED(x) \ 2991911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_OFF] & \ 2992911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SHORT_RANGE_MODE_MASK) 29935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 29945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* LE commands TBD 2995ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Supported Commands (Byte 24 continued) 2996ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Supported Commands (Byte 25) 2997ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Supported Commands (Byte 26) 2998ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Supported Commands (Byte 27) 2999ee96a3c60fca590d38025925c072d264e06493c4Myles Watson * Supported Commands (Byte 28) 30005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*/ 30015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3002ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 29) */ 3003911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_MASK 0x08 3004911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_OFF 29 3005911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_ENH_SETUP_SYNCH_CONN_SUPPORTED(x) \ 3006911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_OFF] & \ 3007911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ENH_SETUP_SYNCH_CONN_MASK) 3008911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3009911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_MASK 0x10 3010911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_OFF 29 3011911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_ENH_ACCEPT_SYNCH_CONN_SUPPORTED(x) \ 3012911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_OFF] & \ 3013911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_ENH_ACCEPT_SYNCH_CONN_MASK) 3014911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3015911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_MASK 0x20 3016911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_OFF 29 3017911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_CODECS_SUPPORTED(x) \ 3018911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_OFF] & \ 3019911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_CODECS_MASK) 3020911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3021911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_MASK 0x40 3022911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_OFF 29 3023911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_CHANNEL_PARAMETERS_SUPPORTED(x) \ 3024911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_OFF] & \ 3025911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_MWS_CHANN_PARAM_MASK) 3026911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3027911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_MASK 0x80 3028911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_OFF 29 3029911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_EXTERNAL_FRAME_CONFIGURATION_SUPPORTED(x) \ 3030911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_OFF] & \ 3031911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_EXT_FRAME_CONF_MASK) 3032ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 3033ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 30) */ 3034911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_MASK 0x01 3035911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_OFF 30 3036911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_SIGNALING_SUPPORTED(x) \ 3037911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_OFF] & \ 3038911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_MWS_SIGNALING_MASK) 3039911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3040911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_MASK 0x02 3041911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_OFF 30 3042911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_TRANSPORT_LAYER_SUPPORTED(x) \ 3043911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_OFF] & \ 3044911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_MWS_TRANS_LAYER_MASK) 3045911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3046911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_MASK 0x04 3047911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_OFF 30 3048911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_SCAN_FREQUENCY_TABLE_SUPPORTED(x) \ 3049911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_OFF] & \ 3050911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_MWS_SCAN_FREQ_TABLE_MASK) 3051911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3052911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_MASK 0x08 3053911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_OFF 30 3054911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_GET_MWS_TRANS_LAYER_CFG_SUPPORTED(x) \ 3055911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_OFF] & \ 3056911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_GET_TRANS_LAYER_CONF_MASK) 3057911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3058911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_MASK 0x10 3059911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_OFF 30 3060911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_MWS_PATTERN_CONFIGURATION_SUPPORTED(x) \ 3061911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_OFF] & \ 3062911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_MWS_PATTERN_CONF_MASK) 3063ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 30643aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach/* Supported Commands (Byte 30 bit 5) */ 3065911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_MASK 0x20 3066911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_OFF 30 3067911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_TRIG_CLK_CAP_SUPPORTED(x) \ 3068911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_OFF] & \ 3069911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_TRIG_CLK_CAP_MASK) 30703aa60544585b5fb0f35c1165539a4a859fc0f25cAndre Eisenbach 3071ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 30 bit 6-7) */ 3072911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE 0x06 3073911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_OFF 30 3074911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_TRUNCATED_PAGE_SUPPORTED(x) \ 3075911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_TRUNCATED_PAGE_OFF] & HCI_SUPP_COMMANDS_TRUNCATED_PAGE) 3076ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 3077911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL 0x07 3078911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL_OFF 30 3079911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_TRUNCATED_PAGE_CANCEL_SUPPORTED(x) \ 3080911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL_OFF] & \ 3081911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_TRUNCATED_PAGE_CANCEL) 3082ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 3083ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 31 bit 6-7) */ 3084911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST 0x00 3085911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_OFF 31 3086911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_CONLESS_SLAVE_BRCST_SUPPORTED(x) \ 3087911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_OFF] & \ 3088911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST) 3089911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3090911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE 0x01 3091911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE_OFF 31 3092911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_CONLESS_SLAVE_BRCST_RECEIVE_SUPPORTED(x) \ 3093911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE_OFF] & \ 3094911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_RECEIVE) 3095911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3096911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_START_SYNC_TRAIN 0x02 3097911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_START_SYNC_TRAIN_OFF 31 3098911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_START_SYNC_TRAIN_SUPPORTED(x) \ 3099911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_START_SYNC_TRAIN_OFF] & \ 3100911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_START_SYNC_TRAIN) 3101911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3102911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN 0x03 3103911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN_OFF 31 3104911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_RECEIVE_SYNC_TRAIN_SUPPORTED(x) \ 3105911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN_OFF] & \ 3106911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_RECEIVE_SYNC_TRAIN) 3107911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3108911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR 0x04 3109911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR_OFF 31 3110911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_RESERVED_LT_ADDR_SUPPORTED(x) \ 3111911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR_OFF] & \ 3112911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_RESERVED_LT_ADDR) 3113911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3114911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR 0x05 3115911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR_OFF 31 3116911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_DELETE_RESERVED_LT_ADDR_SUPPORTED(x) \ 3117911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR_OFF] & \ 3118911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_DELETE_RESERVED_LT_ADDR) 3119911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3120911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA 0x06 3121911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA_OFF 31 3122911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SET_CONLESS_SLAVE_BRCST_DATA_SUPPORTED(x) \ 3123911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA_OFF] & \ 3124911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_SET_CONLESS_SLAVE_BRCST_DATA) 3125911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3126911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM 0x07 3127911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM_OFF 31 3128911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SYNC_TRAIN_PARAM_SUPPORTED(x) \ 3129911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM_OFF] & \ 3130911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_SYNC_TRAIN_PARAM) 3131ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 3132ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta/* Supported Commands (Byte 32 bit 0) */ 3133911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM 0x00 3134911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM_OFF 32 3135911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SYNC_TRAIN_PARAM_SUPPORTED(x) \ 3136911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM_OFF] & \ 3137911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_SYNC_TRAIN_PARAM) 3138911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3139911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_MASK 0x02 3140911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_OFF 32 3141911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_SUPPORTED(x) \ 3142911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_OFF] & \ 3143911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY_MASK) 3144911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3145911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_MASK 0x04 3146911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_OFF 32 3147911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_SECURE_CONNS_SUPPORT_SUPPORTED(x) \ 3148911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_OFF] & \ 3149911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_SECURE_CONNS_SUPPORT_MASK) 3150911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3151911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_MASK 0x08 3152911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_OFF 32 3153911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SECURE_CONNS_SUPPORT_SUPPORTED(x) \ 3154911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_OFF] & \ 3155911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_SECURE_CONNS_SUPPORT_MASK) 3156911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3157911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_MASK 0x10 3158911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_OFF 32 3159911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_AUTHENT_PAYLOAD_TOUT_SUPPORTED(x) \ 3160911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_OFF] & \ 3161911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_AUTHENT_PAYLOAD_TOUT_MASK) 3162911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3163911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_MASK 0x20 3164911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_OFF 32 3165911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_AUTHENT_PAYLOAD_TOUT_SUPPORTED(x) \ 3166911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_OFF] & \ 3167911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_AUTHENT_PAYLOAD_TOUT_MASK) 31687fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 31697fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_MASK 0x40 3170911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_OFF 32 3171911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_READ_LOCAL_OOB_EXTENDED_DATA_SUPPORTED(x) \ 3172911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_OFF] & \ 3173911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_READ_LOCAL_OOB_EXTENDED_DATA_MASK) 31747fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 3175911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_MASK 0x80 3176911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_OFF 32 3177911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE_SUPPORTED(x) \ 3178911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_OFF] & \ 3179911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_WRITE_SECURE_CONNECTIONS_TEST_MODE_MASK) 3180ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 31817fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta/* supported LE remote control connection parameter request reply */ 3182911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_MASK 0x10 3183911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_OFF 33 3184911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_RC_CONN_PARAM_UPD_RPY_SUPPORTED(x) \ 3185911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_OFF] & \ 3186911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_RPY_MASK) 3187911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson 3188911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_RLE_RC_CONN_PARAM_UPD_NEG_RPY_MASK 0x20 3189911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_NEG_RPY_OFF 33 3190911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson#define HCI_LE_RC_CONN_PARAM_UPD_NEG_RPY_SUPPORTED(x) \ 3191911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson ((x)[HCI_SUPP_COMMANDS_LE_RC_CONN_PARAM_UPD_NEG_RPY_OFF] & \ 3192911d1ae03efec2d54c3b1b605589d790d1745488Myles Watson HCI_SUPP_COMMANDS_RLE_RC_CONN_PARAM_UPD_NEG_RPY_MASK) 3193ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 31944b1feb60f3478aced5e106749f00f1e75e65d454Jakub Pawlowski#define HCI_LE_2M_PHY_SUPPORTED(x) (((x)[1] & 0x01)) // BIT 8 SET 31954b1feb60f3478aced5e106749f00f1e75e65d454Jakub Pawlowski#define HCI_LE_CODED_PHY_SUPPORTED(x) (((x)[1] & 0x08)) // BIT 11 SET 31964b1feb60f3478aced5e106749f00f1e75e65d454Jakub Pawlowski 31971f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski/* LE Advertising Extension related Procedurs */ 31981f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski#define HCI_LE_EXTENDED_ADVERTISING_SUPPORTED(x) \ 31991f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski (((x)[1] & 0x10)) // BIT 12 SET 32001f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski#define HCI_LE_PERIODIC_ADVERTISING_SUPPORTED(x) \ 32011f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski (((x)[1] & 0x20)) // BIT 13 SET 32021f4cc6dc61ad5863c3fe31dafd364e064b1e64adJakub Pawlowski 32035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 3204