15738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************************************************** 25738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * 35738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project * Copyright (C) 1999-2012 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 HCIMSGS_H 205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIMSGS_H 215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_target.h" 235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "hcidefs.h" 245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#include "bt_types.h" 255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Projectextern "C" { 295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Message by message.... */ 325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_UINT8(p, off) (UINT8)(*((UINT8 *)((p) + 1) + p->offset + 3 + (off))) 345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_UINT16(p, off) (UINT16)((*((UINT8 *)((p) + 1) + p->offset + 3 + (off)) + \ 365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project (*((UINT8 *)((p) + 1) + p->offset + 3 + (off) + 1) << 8))) 375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_UINT32(p, off) (UINT32)((*((UINT8 *)((p) + 1) + p->offset + 3 + (off)) + \ 395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project (*((UINT8 *)((p) + 1) + p->offset + 3 + (off) + 1) << 8) + \ 405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project (*((UINT8 *)((p) + 1) + p->offset + 3 + (off) + 2) << 16) + \ 415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project (*((UINT8 *)((p) + 1) + p->offset + 3 + (off) + 3) << 24))) 425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_ARRAY(p, off, x, len) \ 445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ \ 455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *qq = ((UINT8 *)((p) + 1) + p->offset + 3 + (off)); UINT8 *rr = (UINT8 *)x; \ 465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int ii; for (ii = 0; ii < len; ii++) *rr++ = *qq++; \ 475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_ARRAY16(p, off, x) \ 505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ \ 515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *qq = ((UINT8 *)((p) + 1) + p->offset + 3 + (off)); UINT8 *rr = (UINT8 *)x + 15; \ 525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int ii; for (ii = 0; ii < 16; ii++) *rr-- = *qq++; \ 535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_BDADDR(p, off, x) \ 565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ \ 575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *qq = ((UINT8 *)((p) + 1) + p->offset + 3 + (off)); UINT8 *rr = (UINT8 *)x + BD_ADDR_LEN - 1; \ 585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int ii; for (ii = 0; ii < BD_ADDR_LEN; ii++) *rr-- = *qq++; \ 595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_DEVCLASS(p, off, x) \ 625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ \ 635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *qq = ((UINT8 *)((p) + 1) + p->offset + 3 + (off)); UINT8 *rr = (UINT8 *)x + DEV_CLASS_LEN - 1; \ 645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int ii; for (ii = 0; ii < DEV_CLASS_LEN; ii++) *rr-- = *qq++; \ 655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_LAP(p, off, x) \ 685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project{ \ 695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *qq = ((UINT8 *)((p) + 1) + p->offset + 3 + (off)); UINT8 *rr = (UINT8 *)x + LAP_LEN - 1; \ 705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project int ii; for (ii = 0; ii < LAP_LEN; ii++) *rr-- = *qq++; \ 715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_GET_POINTER(p, off) ((UINT8 *)((p) + 1) + p->offset + 3 + (off)) 745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_inquiry(const LAP inq_lap, UINT8 duration, 775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 response_cnt); 785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_INQUIRY 5 805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_INQ_INQ_LAP_OFF 0 835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_INQ_DUR_OFF 3 845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_INQ_RSP_CNT_OFF 4 855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Inquiry */ 865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Inquiry Cancel */ 885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_inq_cancel(void); 895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_INQ_CANCEL 0 915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Periodic Inquiry Mode */ 935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_per_inq_mode(UINT16 max_period, UINT16 min_period, 945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project const LAP inq_lap, UINT8 duration, 955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 response_cnt); 965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_PER_INQ_MODE 9 985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_MAX_INTRVL_OFF 0 1005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_MIN_INTRVL_OFF 2 1015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_INQ_LAP_OFF 4 1025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_DURATION_OFF 7 1035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PER_INQ_RSP_CNT_OFF 8 1045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Periodic Inquiry Mode */ 1055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Exit Periodic Inquiry Mode */ 1075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_exit_per_inq(void); 1085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_EXIT_PER_INQ 0 1105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Create Connection */ 1115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_create_conn(BD_ADDR dest, UINT16 packet_types, 1125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 page_scan_rep_mode, 1135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 page_scan_mode, 1145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 clock_offset, 1155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 allow_switch); 1165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_CREATE_CONN 13 1185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_CR_CONN_BD_ADDR_OFF 0 1205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_CR_CONN_PKT_TYPES_OFF 6 1215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_CR_CONN_REP_MODE_OFF 8 1225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_CR_CONN_PAGE_SCAN_MODE_OFF 9 1235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_CR_CONN_CLK_OFF_OFF 10 1245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_CR_CONN_ALLOW_SWITCH_OFF 12 1255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Create Connection */ 1265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Disconnect */ 1285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_disconnect(UINT16 handle, UINT8 reason); 1295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_DISCONNECT 3 1315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISC_HANDLE_OFF 0 1335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DISC_REASON_OFF 2 1345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Disconnect */ 1355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BTM_SCO_INCLUDED == TRUE 1375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Add SCO Connection */ 1385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_add_SCO_conn (UINT16 handle, UINT16 packet_types); 1395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTM_SCO_INCLUDED */ 1405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_ADD_SCO_CONN 4 1425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ADD_SCO_HANDLE_OFF 0 1445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ADD_SCO_PACKET_TYPES_OFF 2 1455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Add SCO Connection */ 1465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Create Connection Cancel */ 1485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_create_conn_cancel(BD_ADDR dest); 1495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_CREATE_CONN_CANCEL 6 1515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_CR_CONN_CANCEL_BD_ADDR_OFF 0 1535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Create Connection Cancel */ 1545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Accept Connection Request */ 1565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_accept_conn (BD_ADDR bd_addr, UINT8 role); 1575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_ACCEPT_CONN 7 1595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACC_CONN_BD_ADDR_OFF 0 1615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACC_CONN_ROLE_OFF 6 1625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Accept Connection Request */ 1635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Reject Connection Request */ 1655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_reject_conn (BD_ADDR bd_addr, UINT8 reason); 1665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_REJECT_CONN 7 1685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REJ_CONN_BD_ADDR_OFF 0 1705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REJ_CONN_REASON_OFF 6 1715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Reject Connection Request */ 1725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Link Key Request Reply */ 1745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_link_key_req_reply (BD_ADDR bd_addr, 1755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project LINK_KEY link_key); 1765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_LINK_KEY_REQ_REPLY 22 1785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_REPLY_BD_ADDR_OFF 0 1805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_REPLY_LINK_KEY_OFF 6 1815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Link Key Request Reply */ 1825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Link Key Request Neg Reply */ 1845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_link_key_neg_reply (BD_ADDR bd_addr); 1855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_LINK_KEY_NEG_REPLY 6 1875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_KEY_NEG_REP_BD_ADR_OFF 0 1895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Link Key Request Neg Reply */ 1905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* PIN Code Request Reply */ 1925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_pin_code_req_reply (BD_ADDR bd_addr, 1935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 pin_code_len, 1945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project PIN_CODE pin_code); 1955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_PIN_CODE_REQ_REPLY 23 1975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REPLY_BD_ADDR_OFF 0 1995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REPLY_PIN_LEN_OFF 6 2005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_REPLY_PIN_CODE_OFF 7 2015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* PIN Code Request Reply */ 2025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Link Key Request Neg Reply */ 2045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_pin_code_neg_reply (BD_ADDR bd_addr); 2055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_PIN_CODE_NEG_REPLY 6 2075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PIN_CODE_NEG_REP_BD_ADR_OFF 0 2095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Link Key Request Neg Reply */ 2105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Change Connection Type */ 2125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_change_conn_type (UINT16 handle, UINT16 packet_types); 2135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_CHANGE_CONN_TYPE 4 2155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHNG_PKT_TYPE_HANDLE_OFF 0 2175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHNG_PKT_TYPE_PKT_TYPE_OFF 2 2185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Change Connection Type */ 2195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_CMD_HANDLE 2 2215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CMD_HANDLE_HANDLE_OFF 0 2235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_auth_request (UINT16 handle); /* Authentication Request */ 2255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Set Connection Encryption */ 2275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_set_conn_encrypt (UINT16 handle, BOOLEAN enable); 2285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SET_CONN_ENCRYPT 3 2295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_ENCRYPT_HANDLE_OFF 0 2325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SET_ENCRYPT_ENABLE_OFF 2 2335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Set Connection Encryption */ 2345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_change_link_key (UINT16 handle); /* Change Connection Link Key */ 2365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Master Link Key */ 2385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_master_link_key (BOOLEAN key_flag); 2395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_MASTER_LINK_KEY 1 2415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MASTER_KEY_FLAG_OFF 0 2435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Master Link Key */ 2445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Remote Name Request */ 2465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_rmt_name_req (BD_ADDR bd_addr, 2475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 page_scan_rep_mode, 2485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 page_scan_mode, 2495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 clock_offset); 2505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_RMT_NAME_REQ 10 2525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_BD_ADDR_OFF 0 2545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_REP_MODE_OFF 6 2555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_PAGE_SCAN_MODE_OFF 7 2565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_CLK_OFF_OFF 8 2575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Remote Name Request */ 2585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Remote Name Request Cancel */ 2605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_rmt_name_req_cancel(BD_ADDR bd_addr); 2615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_RMT_NAME_REQ_CANCEL 6 2635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_NAME_CANCEL_BD_ADDR_OFF 0 2655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Remote Name Request Cancel */ 2665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_rmt_features_req(UINT16 handle); /* Remote Features Request */ 2685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Remote Extended Features */ 2705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_rmt_ext_features(UINT16 handle, UINT8 page_num); 2715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_RMT_EXT_FEATURES 3 2735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_EXT_FEATURES_HANDLE_OFF 0 2755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_RMT_EXT_FEATURES_PAGE_NUM_OFF 2 2765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Remote Extended Features */ 2775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Local Extended Features */ 2805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_local_ext_features (UINT8 page_num); 2815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_LOCAL_EXT_FEATURES 1 2835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LOCAL_EXT_FEATURES_PAGE_NUM_OFF 0 2855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Local Extended Features */ 2865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_rmt_ver_req(UINT16 handle); /* Remote Version Info Request */ 2895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_rmt_clk_offset(UINT16 handle); /* Remote Clock Offset */ 2905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_lmp_handle(UINT16 handle); /* Remote LMP Handle */ 2915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_setup_esco_conn (UINT16 handle, 2935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 tx_bw, UINT32 rx_bw, 2945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 max_latency, UINT16 voice, 2955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 retrans_effort, 2965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 packet_types); 2975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SETUP_ESCO 17 2985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 2995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_ESCO_HANDLE_OFF 0 3005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_ESCO_TX_BW_OFF 2 3015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_ESCO_RX_BW_OFF 6 3025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_ESCO_MAX_LAT_OFF 10 3035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_ESCO_VOICE_OFF 12 3045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_ESCO_RETRAN_EFF_OFF 14 3055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SETUP_ESCO_PKT_TYPES_OFF 15 3065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_accept_esco_conn (BD_ADDR bd_addr, 3095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 tx_bw, UINT32 rx_bw, 3105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 max_latency, 3115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 content_fmt, 3125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 retrans_effort, 3135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 packet_types); 3145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_ACCEPT_ESCO 21 3155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_ESCO_BDADDR_OFF 0 3175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_ESCO_TX_BW_OFF 6 3185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_ESCO_RX_BW_OFF 10 3195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_ESCO_MAX_LAT_OFF 14 3205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_ESCO_VOICE_OFF 16 3215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_ESCO_RETRAN_EFF_OFF 18 3225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ACCEPT_ESCO_PKT_TYPES_OFF 19 3235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_reject_esco_conn (BD_ADDR bd_addr, UINT8 reason); 3265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_REJECT_ESCO 7 3275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REJECT_ESCO_BDADDR_OFF 0 3295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REJECT_ESCO_REASON_OFF 6 3305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Hold Mode */ 3325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_hold_mode(UINT16 handle, UINT16 max_hold_period, 3335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 min_hold_period); 3345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_HOLD_MODE 6 3365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOLD_MODE_HANDLE_OFF 0 3385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOLD_MODE_MAX_PER_OFF 2 3395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOLD_MODE_MIN_PER_OFF 4 3405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Hold Mode */ 3415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Sniff Mode */ 3435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_sniff_mode(UINT16 handle, 3445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 max_sniff_period, 3455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 min_sniff_period, 3465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 sniff_attempt, 3475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 sniff_timeout); 3485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SNIFF_MODE 10 3505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_MODE_HANDLE_OFF 0 3535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_MODE_MAX_PER_OFF 2 3545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_MODE_MIN_PER_OFF 4 3555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_MODE_ATTEMPT_OFF 6 3565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_MODE_TIMEOUT_OFF 8 3575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Sniff Mode */ 3585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_exit_sniff_mode(UINT16 handle); /* Exit Sniff Mode */ 3605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Park Mode */ 3625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_park_mode (UINT16 handle, 3635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 beacon_max_interval, 3645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 beacon_min_interval); 3655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_PARK_MODE 6 3675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PARK_MODE_HANDLE_OFF 0 3695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PARK_MODE_MAX_PER_OFF 2 3705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PARK_MODE_MIN_PER_OFF 4 3715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Park Mode */ 3725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_exit_park_mode(UINT16 handle); /* Exit Park Mode */ 3745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* QoS Setup */ 3765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_qos_setup (UINT16 handle, UINT8 flags, 3775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 service_type, 3785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 token_rate, UINT32 peak, 3795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 latency, UINT32 delay_var); 3805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_QOS_SETUP 20 3825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_HANDLE_OFF 0 3845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_FLAGS_OFF 2 3855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_SERVICE_TYPE_OFF 3 3865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_TOKEN_RATE_OFF 4 3875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_PEAK_BANDWIDTH_OFF 8 3885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_LATENCY_OFF 12 3895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_QOS_DELAY_VAR_OFF 16 3905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* QoS Setup */ 3915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_role_discovery (UINT16 handle); /* Role Discovery */ 3935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Switch Role Request */ 3955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_switch_role (BD_ADDR bd_addr, UINT8 role); 3965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SWITCH_ROLE 7 3985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 3995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SWITCH_BD_ADDR_OFF 0 4005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SWITCH_ROLE_OFF 6 4015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Switch Role Request */ 4025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_policy_set(UINT16 handle); /* Read Policy Settings */ 4045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Policy Settings */ 4065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_policy_set(UINT16 handle, UINT16 settings); 4075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_POLICY_SET 4 4095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_POLICY_HANDLE_OFF 0 4115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_POLICY_SETTINGS_OFF 2 4125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Policy Settings */ 4135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Default Policy Settings */ 4155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_def_policy_set(void); 4165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_READ_DEF_POLICY_SET 0 4185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Default Policy Settings */ 4195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Default Policy Settings */ 4215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_def_policy_set(UINT16 settings); 4225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_DEF_POLICY_SET 2 4245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_DEF_POLICY_SETTINGS_OFF 0 4265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Default Policy Settings */ 4275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Flow Specification */ 4295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_flow_specification(UINT16 handle, UINT8 flags, 4305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 flow_direct, 4315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 service_type, 4325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 token_rate, 4335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 token_bucket_size, 4345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 peak, UINT32 latency); 4355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_FLOW_SPEC 21 4375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_HANDLE_OFF 0 4395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_FLAGS_OFF 2 4405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_FLOW_DIRECT_OFF 3 4415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_SERVICE_TYPE_OFF 4 4425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_TOKEN_RATE_OFF 5 4435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_TOKEN_BUCKET_SIZE_OFF 9 4445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_PEAK_BANDWIDTH_OFF 13 4455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLOW_SPEC_LATENCY_OFF 17 4465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Flow Specification */ 4475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/****************************************** 4495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Lisbon Features 4505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*******************************************/ 4515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if BTM_SSR_INCLUDED == TRUE 4525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Sniff Subrating */ 4535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_sniff_sub_rate(UINT16 handle, UINT16 max_lat, 4545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 min_remote_lat, 4555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 min_local_lat); 4565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SNIFF_SUB_RATE 8 4585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_SUB_RATE_HANDLE_OFF 0 4605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_SUB_RATE_MAX_LAT_OFF 2 4615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_SUB_RATE_MIN_REM_LAT_OFF 4 4625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SNIFF_SUB_RATE_MIN_LOC_LAT_OFF 6 4635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Sniff Subrating */ 4645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else /* BTM_SSR_INCLUDED == FALSE */ 4665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define btsnd_hcic_sniff_sub_rate(handle, max_lat, min_remote_lat, min_local_lat) FALSE 4685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BTM_SSR_INCLUDED */ 4705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Extended Inquiry Response */ 4725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BTM_EIR_SERVER_INCLUDED == TRUE) 4735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcic_write_ext_inquiry_response(void *buffer, UINT8 fec_req); 4745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_EXT_INQ_RESP 241 4765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_EXT_INQ_RESP_FEC_OFF 0 4785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_EXT_INQ_RESP_RESPONSE 1 4795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_ext_inquiry_response(void); /* Read Extended Inquiry Response */ 4815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#else 4825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define btsnd_hcic_write_ext_inquiry_response(buffer, fec_req) 4835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define btsnd_hcic_read_ext_inquiry_response() FALSE 4845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 4855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Simple Pairing Mode */ 4865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/**** Simple Pairing Commands ****/ 4875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_simple_pairing_mode(UINT8 mode); 4885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_W_SIMP_PAIR 1 4905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_WRITE_SP_MODE_OFF 0 4925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_simple_pairing_mode (void); 4955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_R_SIMP_PAIR 0 4975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 4985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Simple Pairing Debug Mode */ 4995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_simp_pair_debug_mode(UINT8 debug_mode); 5005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SIMP_PAIR_DBUG 1 5025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_WRITE_SP_DBUG_MODE_OFF 0 5045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* IO Capabilities Response */ 5065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_io_cap_req_reply (BD_ADDR bd_addr, UINT8 capability, 5075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 oob_present, UINT8 auth_req); 5085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_IO_CAP_RESP 9 5105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_BD_ADDR_OFF 0 5125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAPABILITY_OFF 6 5135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_OOB_DATA_OFF 7 5145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_AUTH_REQ_OFF 8 5155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* IO Capabilities Req Neg Reply */ 5175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_io_cap_req_neg_reply (BD_ADDR bd_addr, UINT8 err_code); 5185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_IO_CAP_NEG_REPLY 7 5205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_NR_BD_ADDR_OFF 0 5225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_IO_CAP_NR_ERR_CODE 6 5235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Local OOB Data */ 5255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_local_oob_data (void); 5265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_R_LOCAL_OOB 0 5285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_user_conf_reply (BD_ADDR bd_addr, BOOLEAN is_yes); 5315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_UCONF_REPLY 6 5335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_CONF_BD_ADDR_OFF 0 5355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_user_passkey_reply (BD_ADDR bd_addr, UINT32 value); 5385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_U_PKEY_REPLY 10 5405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_BD_ADDR_OFF 0 5425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_VALUE_OFF 6 5435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_user_passkey_neg_reply (BD_ADDR bd_addr); 5465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_U_PKEY_NEG_REPLY 6 5485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_USER_PASSKEY_NEG_BD_ADDR_OFF 0 5505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Remote OOB Data Request Reply */ 5525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_rem_oob_reply (BD_ADDR bd_addr, UINT8 *p_c, 5535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *p_r); 5545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_REM_OOB_REPLY 38 5565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REM_OOB_DATA_BD_ADDR_OFF 0 5585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REM_OOB_DATA_C_OFF 6 5595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REM_OOB_DATA_R_OFF 22 5605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Remote OOB Data Request Negative Reply */ 5625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_rem_oob_neg_reply (BD_ADDR bd_addr); 5635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_REM_OOB_NEG_REPLY 6 5655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_REM_OOB_DATA_NEG_BD_ADDR_OFF 0 5675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Tx Power Level */ 5695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_inq_tx_power (void); 5705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_R_TX_POWER 0 5725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Tx Power Level */ 5745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_inq_tx_power (INT8 level); 5755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_W_TX_POWER 1 5775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_WRITE_TX_POWER_LEVEL_OFF 0 5795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Default Erroneous Data Reporting */ 5805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_default_erroneous_data_rpt (void); 5815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_R_ERR_DATA_RPT 0 5835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Default Erroneous Data Reporting */ 5855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_default_erroneous_data_rpt (UINT8 level); 5865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_W_ERR_DATA_RPT 1 5885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_WRITE_ERR_DATA_RPT_OFF 0 5905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if L2CAP_NON_FLUSHABLE_PB_INCLUDED == TRUE 5935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_enhanced_flush (UINT16 handle, UINT8 packet_type); 5945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_ENHANCED_FLUSH 3 5965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 5975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 5995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_send_keypress_notif (BD_ADDR bd_addr, UINT8 notif); 6005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SEND_KEYPRESS_NOTIF 7 6025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SEND_KEYPRESS_NOTIF_BD_ADDR_OFF 0 6045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SEND_KEYPRESS_NOTIF_NOTIF_OFF 6 6055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_refresh_encryption_key(UINT16 handle); /* Refresh Encryption Key */ 6085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/**** end of Simple Pairing Commands ****/ 6105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_set_event_mask(UINT8 local_controller_id, BT_EVENT_MASK evt_mask); 6135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SET_EVENT_MASK 8 6155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EVENT_MASK_MASK_OFF 0 6165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Set Event Mask */ 6175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Reset */ 6195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_set_event_mask_page_2 (UINT8 local_controller_id, 6205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BT_EVENT_MASK event_mask); 6215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SET_EVENT_MASK_PAGE_2 8 6235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_EVENT_MASK_MASK_OFF 0 6245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Set Event Mask Page 2 */ 6255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Reset */ 6275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_reset(UINT8 local_controller_id); 6285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_RESET 0 6305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Reset */ 6315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Store Current Settings */ 6335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MAX_FILT_COND (sizeof (BD_ADDR) + 1) 6345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_set_event_filter(UINT8 filt_type, 6365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 filt_cond_type, 6375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *filt_cond, 6385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 filt_cond_len); 6395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SET_EVT_FILTER 9 6415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILT_COND_FILT_TYPE_OFF 0 6435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILT_COND_COND_TYPE_OFF 1 6445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FILT_COND_FILT_OFF 2 6455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Set Event Filter */ 6465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_flush(UINT8 local_controller_id, UINT16 handle); /* Flush */ 6485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Create New Unit Type */ 6505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_new_unit_key(void); 6515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_NEW_UNIT_KEY 0 6535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Create New Unit Type */ 6545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Stored Key */ 6565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_stored_key (BD_ADDR bd_addr, 6575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BOOLEAN read_all_flag); 6585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_READ_STORED_KEY 7 6605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_KEY_BD_ADDR_OFF 0 6625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_KEY_ALL_FLAG_OFF 6 6635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Stored Key */ 6645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MAX_WRITE_KEYS 10 6665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Stored Key */ 6675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_stored_key (UINT8 num_keys, BD_ADDR *bd_addr, 6685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project LINK_KEY *link_key); 6695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_STORED_KEY sizeof(btmsg_hcic_write_stored_key_t) 6715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_KEY_NUM_KEYS_OFF 0 6735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_KEY_BD_ADDR_OFF 1 6745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_KEY_KEY_OFF 7 6755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* only 0x0b keys cab be sent in one HCI command */ 6765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_MAX_NUM_OF_LINK_KEYS_PER_CMMD 0x0b 6775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Stored Key */ 6785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Delete Stored Key */ 6805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_delete_stored_key (BD_ADDR bd_addr, BOOLEAN delete_all_flag); 6815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_DELETE_STORED_KEY 7 6835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DELETE_KEY_BD_ADDR_OFF 0 6855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DELETE_KEY_ALL_FLAG_OFF 6 6865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Delete Stored Key */ 6875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Change Local Name */ 6895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_change_name(BD_NAME name); 6905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_CHANGE_NAME BD_NAME_LEN 6925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CHANGE_NAME_NAME_OFF 0 6945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Change Local Name */ 6955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_READ_CMD 0 6985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 6995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_PARAM1 1 7005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_WRITE_PARAM1_PARAM_OFF 0 7025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_PARAM2 2 7045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_WRITE_PARAM2_PARAM_OFF 0 7065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_PARAM3 3 7085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_WRITE_PARAM3_PARAM_OFF 0 7105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SET_AFH_CHANNELS 10 7125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_pin_type(void); /* Read PIN Type */ 7145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_pin_type(UINT8 type); /* Write PIN Type */ 7155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_auto_accept(void); /* Read Auto Accept */ 7165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_auto_accept(UINT8 flag); /* Write Auto Accept */ 7175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_name (void); /* Read Local Name */ 7185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_conn_acc_tout(UINT8 local_controller_id); /* Read Connection Accept Timout */ 7195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_conn_acc_tout(UINT8 local_controller_id, UINT16 tout); /* Write Connection Accept Timout */ 7205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_page_tout(void); /* Read Page Timout */ 7215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_page_tout(UINT16 timeout); /* Write Page Timout */ 7225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_scan_enable(void); /* Read Scan Enable */ 7235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_scan_enable(UINT8 flag); /* Write Scan Enable */ 7245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_pagescan_cfg(void); /* Read Page Scan Activity */ 7255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_pagescan_cfg(UINT16 interval, 7275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 window); /* Write Page Scan Activity */ 7285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_PAGESCAN_CFG 4 7305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SCAN_CFG_INTERVAL_OFF 0 7325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SCAN_CFG_WINDOW_OFF 2 7335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Page Scan Activity */ 7345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_inqscan_cfg(void); /* Read Inquiry Scan Activity */ 7365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Inquiry Scan Activity */ 7385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_inqscan_cfg(UINT16 interval, UINT16 window); 7395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_INQSCAN_CFG 4 7415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SCAN_CFG_INTERVAL_OFF 0 7435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_SCAN_CFG_WINDOW_OFF 2 7445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Inquiry Scan Activity */ 7455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_auth_enable(void); /* Read Authentication Enable */ 7475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_auth_enable(UINT8 flag); /* Write Authentication Enable */ 7485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_encr_mode (void); /* Read encryption mode */ 7495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_encr_mode (UINT8 mode); /* Write encryption mode */ 7505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_dev_class(void); /* Read Class of Device */ 7515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_dev_class(DEV_CLASS dev); /* Write Class of Device */ 7525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_voice_settings(void); /* Read Voice Settings */ 7535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_voice_settings(UINT16 flags); /* Write Voice Settings */ 7545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Host Controller to Host flow control */ 7565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_FLOW_CTRL_OFF 0 7575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_FLOW_CTRL_ACL_ON 1 7585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_FLOW_CTRL_SCO_ON 2 7595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_FLOW_CTRL_BOTH_ON 3 7605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_set_host_flow_ctrl (UINT8 value); /* Enable/disable flow control toward host */ 7625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_auto_flush_tout(UINT16 handle); /* Read Retransmit Timout */ 7655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_auto_flush_tout(UINT16 handle, 7675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 timeout); /* Write Retransmit Timout */ 7685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_AUTO_FLUSH_TOUT 4 7705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLUSH_TOUT_HANDLE_OFF 0 7725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_FLUSH_TOUT_TOUT_OFF 2 7735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_num_bcast_xmit(void); /* Read Num Broadcast Retransmits */ 7755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_num_bcast_xmit(UINT8 num); /* Write Num Broadcast Retransmits */ 7765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_hold_mode_act(void); /* Read Hold Mode Activity */ 7775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_hold_mode_act(UINT8 flags); /* Write Hold Mode Activity */ 7785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_tx_power(UINT16 handle, UINT8 type); /* Read Tx Power */ 7805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_READ_TX_POWER 3 7825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_TX_POWER_HANDLE_OFF 0 7845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_TX_POWER_TYPE_OFF 2 7855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read transmit power level parameter */ 7875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CURRENT 0x00 7885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_MAXIMUM 0x01 7895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_sco_flow_enable(void); /* Read Authentication Enable */ 7915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_sco_flow_enable(UINT8 flag); /* Write Authentication Enable */ 7925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Set Host Buffer Size */ 7945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_set_host_buf_size (UINT16 acl_len, 7955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 sco_len, 7965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 acl_num, 7975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 sco_num); 7985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 7995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SET_HOST_BUF_SIZE 7 8005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_BUF_SIZE_ACL_LEN_OFF 0 8025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_BUF_SIZE_SCO_LEN_OFF 2 8035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_BUF_SIZE_ACL_NUM_OFF 3 8045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_HOST_BUF_SIZE_SCO_NUM_OFF 5 8055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_host_num_xmitted_pkts (UINT8 num_handles, 8085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 *handle, 8095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 *num_pkts); /* Set Host Buffer Size */ 8105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_NUM_PKTS_DONE_SIZE sizeof(btmsg_hcic_num_pkts_done_t) 8125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MAX_DATA_HANDLES 10 8145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKTS_DONE_NUM_HANDLES_OFF 0 8165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKTS_DONE_HANDLE_OFF 1 8175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_PKTS_DONE_NUM_PKTS_OFF 3 8185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_link_super_tout(UINT8 local_controller_id, UINT16 handle); /* Read Link Supervision Timeout */ 8205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Link Supervision Timeout */ 8225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_link_super_tout(UINT8 local_controller_id, UINT16 handle, UINT16 timeout); 8235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_LINK_SUPER_TOUT 4 8255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_SUPER_TOUT_HANDLE_OFF 0 8275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_SUPER_TOUT_TOUT_OFF 2 8285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Link Supervision Timeout */ 8295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_max_iac (void); /* Read Num Supported IAC */ 8315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_cur_iac_lap (void); /* Read Current IAC LAP */ 8325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_cur_iac_lap (UINT8 num_cur_iac, 8345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project LAP * const iac_lap); /* Write Current IAC LAP */ 8355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MAX_IAC_LAPS 0x40 8375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_IAC_LAP_NUM_OFF 0 8395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_WRITE_IAC_LAP_LAP_OFF 1 8405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Write Current IAC LAP */ 8415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Clock */ 8435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_clock (UINT16 handle, UINT8 which_clock); 8445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_READ_CLOCK 3 8465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CLOCK_HANDLE_OFF 0 8485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_READ_CLOCK_WHICH_CLOCK 2 8495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Read Clock */ 8505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef TESTER_ENABLE 8525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_ENTER_TEST_MODE 2 8545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENTER_TEST_HANDLE_OFF 0 8565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_TEST_CNTRL 10 8585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_HANDLE_OFF 0 8595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_SCENARIO_OFF 2 8605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_HOPPINGMODE_OFF 3 8615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_TX_FREQ_OFF 4 8625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_RX_FREQ_OFF 5 8635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_PWR_CNTRL_MODE_OFF 6 8645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_POLL_PERIOD_OFF 7 8655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_PKT_TYPE_OFF 8 8665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_TEST_CNTRL_LENGTH_OFF 9 8675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 8695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 8705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_page_scan_per (void); /* Read Page Scan Period Mode */ 8715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_page_scan_per (UINT8 mode); /* Write Page Scan Period Mode */ 8725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_page_scan_mode (void); /* Read Page Scan Mode */ 8735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_page_scan_mode (UINT8 mode); /* Write Page Scan Mode */ 8745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_local_ver (UINT8 local_controller_id); /* Read Local Version Info */ 8755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_local_supported_cmds (UINT8 local_controller_id); /* Read Local Supported Commands */ 8765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_local_features (void); /* Read Local Supported Features */ 8775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_buffer_size (void); /* Read Local buffer sizes */ 8785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_country_code (void); /* Read Country Code */ 8795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_bd_addr (void); /* Read Local BD_ADDR */ 8805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_fail_contact_count (UINT8 local_controller_id, UINT16 handle); /* Read Failed Contact Counter */ 8815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_reset_fail_contact_count (UINT8 local_controller_id, UINT16 handle);/* Reset Failed Contact Counter */ 8825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_get_link_quality (UINT16 handle); /* Get Link Quality */ 8835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_rssi (UINT16 handle); /* Read RSSI */ 8845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_loopback_mode (void); /* Read Loopback Mode */ 8855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_loopback_mode (UINT8 mode); /* Write Loopback Mode */ 8865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_enable_test_mode (void); /* Enable Device Under Test Mode */ 8875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_pagescan_type(UINT8 type); /* Write Page Scan Type */ 8885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_pagescan_type(void); /* Read Page Scan Type */ 8895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_inqscan_type(UINT8 type); /* Write Inquiry Scan Type */ 8905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_inqscan_type(void); /* Read Inquiry Scan Type */ 8915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_inquiry_mode(UINT8 type); /* Write Inquiry Mode */ 8925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_inquiry_mode(void); /* Read Inquiry Mode */ 8935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_set_afh_channels (UINT8 first, UINT8 last); 8945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_write_afh_channel_assessment_mode (UINT8 mode); 8955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_set_afh_host_channel_class (UINT8 *p_afhchannelmap); 8965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_afh_channel_assessment_mode(void); 8975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_read_afh_channel_map (UINT16 handle); 8985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_nop(void); /* NOP */ 8995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Send HCI Data */ 9015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcic_data (BT_HDR *p_buf, UINT16 len, UINT16 handle, UINT8 boundary, UINT8 broadcast); 9025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_HANDLE_MASK 0x0FFF 9045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCID_GET_HANDLE_EVENT(p) (UINT16)((*((UINT8 *)((p) + 1) + p->offset) + \ 9065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project (*((UINT8 *)((p) + 1) + p->offset + 1) << 8))) 9075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCID_GET_HANDLE(u16) (UINT16)((u16) & HCI_DATA_HANDLE_MASK) 9095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_EVENT_MASK 3 9115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_EVENT_OFFSET 12 9125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCID_GET_EVENT(u16) (UINT8)(((u16) >> HCI_DATA_EVENT_OFFSET) & HCI_DATA_EVENT_MASK) 9135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_BCAST_MASK 3 9155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_DATA_BCAST_OFFSET 10 9165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCID_GET_BCAST(u16) (UINT8)(((u16) >> HCI_DATA_BCAST_OFFSET) & HCI_DATA_BCAST_MASK) 9175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCID_GET_ACL_LEN(p) (UINT16)((*((UINT8 *)((p) + 1) + p->offset + 2) + \ 9195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project (*((UINT8 *)((p) + 1) + p->offset + 3) << 8))) 9205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCID_HEADER_SIZE 4 9225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project /* Send HCI Data */ 9235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCID_GET_SCO_LEN(p) (*((UINT8 *)((p) + 1) + p->offset + 2)) 9255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcic_vendor_spec_cmd ( 9275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project void *buffer, UINT16 opcode, 9285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 len, UINT8 *p_data, 9295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project void *p_cmd_cplt_cback); 9305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/********************************************************************************* 9335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** ** 9345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** H C I E V E N T S ** 9355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** ** 9365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*********************************************************************************/ 9375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Complete Event */ 9395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_inq_comp(void *buffer, UINT8 status); 9405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_INQ_COMP 1 9425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Inquiry Response Event */ 9445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_inq_res(void *buffer, UINT8 num_resp, UINT8 **bd_addr, 9455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *page_scan_rep_mode, UINT8 *page_scan_per_mode, 9465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *page_scan_mode, UINT8 **dev_class, 9475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 *clock_offset); 9485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection Complete Event */ 9505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_connection_comp(void *buffer, UINT8 status, UINT16 handle, 9515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project BD_ADDR bd_addr, UINT8 link_type, UINT8 encr_mode); 9525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_CONNECTION_COMP 11 9545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_TYPE_SCO 0x00 9575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_TYPE_ACL 0x01 9585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPT_MODE_DISABLED 0x00 9605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPT_MODE_POINT_TO_POINT 0x01 9615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_ENCRYPT_MODE_ALL 0x02 9625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection Request Event */ 9655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_connection_req(void *buffer, BD_ADDR bd_addr, DEV_CLASS dev_class, UINT8 link_type); 9665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_CONNECTION_REQ 10 9685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_TYPE_SCO 0x00 9705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_LINK_TYPE_ACL 0x01 9715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Disonnection Complete Event */ 9745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_disc_comp(void *buffer, UINT8 status, UINT16 handle, UINT8 reason); 9755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_DISC_COMP 4 9775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Authentication Complete Event */ 9805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_auth_comp (void *buffer, UINT8 status, UINT16 handle); 9815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_AUTH_COMP 3 9835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Remote Name Request Complete Event */ 9865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_rmt_name_req_comp(void *buffer, UINT8 status, BD_ADDR bd_addr, BD_NAME name); 9875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_RMT_NAME_REQ_COMP (1 + BD_ADDR_LEN + BD_NAME_LEN) 9895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption Change Event */ 9925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_encryption_change (void *buffer, UINT8 status, UINT16 handle, BOOLEAN enable); 9935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_ENCR_CHANGE 4 9955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 9975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection Link Key Change Event */ 9985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_conn_link_key_change (void *buffer, UINT8 status, UINT16 handle); 9995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_LINK_KEY_CHANGE 3 10015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Encryption Key Refresh Complete Event */ 10045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_encrypt_key_refresh (void *buffer, UINT8 status, UINT16 handle); 10055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_ENCRYPT_KEY_REFRESH 3 10075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Master Link Key Complete Event */ 10105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_master_link_key (void *buffer, UINT8 status, UINT16 handle, UINT8 flag); 10115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_MASTER_LINK_KEY 4 10135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read Remote Supported Features Complete Event */ 10165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_read_rmt_features (void *buffer, UINT8 status, UINT16 handle, UINT8 *features); 10175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define LMP_FEATURES_SIZE 8 10195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_READ_RMT_FEATURES 11 10205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read Remote Extended Features Complete Event */ 10235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_read_rmt_ext_features (void *buffer, UINT8 status, UINT16 handle, UINT8 page_num, 10245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 max_page_num, UINT8 *features); 10255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define EXT_LMP_FEATURES_SIZE 8 10275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_READ_RMT_EXT_FEATURES 13 10285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read Remote Version Complete Event */ 10315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_read_rmt_version (void *buffer, UINT8 status, UINT16 handle, UINT8 version, 10325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 comp_name, UINT16 sub_version); 10335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_READ_RMT_VERSION 8 10355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* QOS setup complete */ 10385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_qos_setup_compl (void *buffer, UINT8 status, UINT16 handle, UINT8 flags, 10395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 service_type, UINT32 token_rate, UINT32 peak, 10405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 latency, UINT32 delay_var); 10415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_QOS_SETUP_COMP 21 10435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Flow Specification complete */ 10465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_flow_spec_compl (void *buffer, UINT8 status, UINT16 handle, UINT8 flags, 10475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 flow_direction, UINT8 service_type, UINT32 token_rate, UINT32 token_bucket_size, 10485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT32 peak, UINT32 latency); 10495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_FLOW_SPEC_COMP 22 10515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command Complete Event */ 10545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_cmd_comp(void *buffer, UINT8 max_host_cmds, UINT16 opcode, UINT8 status); 10555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_CMD_COMP 4 10575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command Complete with pre-filled in parameters */ 10605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_cmd_comp_params (void *buffer, UINT8 max_host_cmds, UINT16 cmd_opcode, UINT8 status); 10615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCI_CMD_COMPL_PARAM_OFFSET 4 10635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command Complete Event with 1-byte param */ 10665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_cmd_comp_param1(void *buffer, UINT8 max_host_cmds, UINT16 opcode, 10675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 status, UINT8 param1); 10685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_CMD_COMP_PARAM1 5 10705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command Complete Event with 2-byte param */ 10725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_cmd_comp_param2(void *buffer, UINT8 max_host_cmds, UINT16 opcode, 10735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 status, UINT16 param2); 10745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_CMD_COMP_PARAM2 6 10765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command Complete Event with BD-addr as param */ 10795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_cmd_comp_bd_addr(void *buffer, UINT8 max_host_cmds, UINT16 opcode, 10805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 status, BD_ADDR bd_addr); 10815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_CMD_COMP_BD_ADDR 10 10835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Command Pending Event */ 10865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_cmd_status (void *buffer, UINT8 status, UINT8 max_host_cmds, UINT16 opcode); 10875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_CMD_STATUS 4 10895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* HW failure Event */ 10925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_hw_failure (void *buffer, UINT8 code); 10935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_HW_FAILURE 1 10955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 10975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Flush Occured Event */ 10985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_flush_occured (void *buffer, UINT16 handle); 10995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_FLUSH_OCCURED 2 11015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Role Changed Event */ 11045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_role_change (void *buffer, UINT8 status, BD_ADDR bd_addr, UINT8 role); 11055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_ROLE_CHANGE 8 11075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Ready for Data Packets Event */ 11105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_num_compl_pkts (void *buffer, UINT8 num_handles, UINT16 *p_handle, UINT16 *num_pkts); 11115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MAX_DATA_HANDLES 10 11135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Mode Change Event */ 11165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_mode_change (void *buffer, UINT8 status, UINT16 handle, 11175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 mode, UINT16 interval); 11185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_MODE_CHANGE 6 11205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MAX_DATA_HANDLES 10 11215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Return Link Keys Event */ 11255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_return_link_keys (void *buffer, UINT8 num_keys, BD_ADDR *bd_addr, LINK_KEY *link_key); 11265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* This should not be more than 0x0b */ 11285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define MAX_LINK_KEYS 10 11295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* PIN Code Request Event */ 11335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_pin_code_req (void *buffer, BD_ADDR bd_addr); 11345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_PIN_CODE_REQ 6 11365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Link Key Request Event */ 11405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_link_key_req (void *buffer, BD_ADDR bd_addr); 11415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_LINK_KEY_REQ 6 11435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11445738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Link Key Notification Event */ 11475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_link_key_notify (void *buffer, BD_ADDR bd_addr, LINK_KEY link_key, UINT8 key_type); 11485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_LINK_KEY_NOTIFY 23 11505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Loopback Command Event */ 11545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_loopback_command (void *buffer, UINT8 data_len, UINT8 *data); 11555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_LOOPBACK_COMMAND sizeof(btmsg_hcie_loopback_cmd_t) 11575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Data Buffer Overflow Event */ 11615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_data_buf_overflow (void *buffer, UINT8 link_type); 11625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_DATA_BUF_OVERFLOW 1 11645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Max Slots Change Event */ 11685738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_max_slots_change(void *buffer, UINT16 handle, UINT8 max_slots); 11695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_MAX_SLOTS_CHANGE 3 11715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Read Clock Offset Complet Event */ 11745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_read_clock_off_comp(void *buffer, UINT8 status, UINT16 handle, 11755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 clock_offset); 11765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_READ_CLOCK_OFF_COMP 5 11785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Connection Packet Type Change Event */ 11825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_pkt_type_change (void *buffer, UINT8 status, UINT16 handle, UINT16 pkt_type); 11835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_PKT_TYPE_CHANGE 5 11855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* QOS violation Event */ 11895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_qos_violation (void *buffer, UINT16 handle); 11905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_QOS_VIOLATION 2 11925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page Scan Mode Change Event */ 11965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_pagescan_mode_chng (void *buffer, BD_ADDR bd_addr, UINT8 mode); 11975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 11985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_PAGE_SCAN_MODE_CHNG 7 11995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Page Scan Repetition Mode Change Event */ 12025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_pagescan_rep_mode_chng (void *buffer, BD_ADDR bd_addr, UINT8 mode); 12035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_PAGE_SCAN_REP_MODE_CHNG 7 12055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Sniff Sub Rate Event */ 12085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_sniff_sub_rate(void *buffer, UINT8 status, UINT16 handle, UINT16 max_tx_lat, UINT16 max_rx_lat, 12095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 min_remote_timeout, UINT16 min_local_timeout); 12105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIE_PARAM_SIZE_SNIFF_SUB_RATE 11 12125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* Extended Inquiry Result Event */ 12165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern void btsnd_hcie_ext_inquiry_result(void *buffer, UINT8 num_resp, UINT8 **bd_addr, 12175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 *page_scan_rep_mode, UINT8 *reserved, 12185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 **dev_class, UINT16 *clock_offset, UINT8 *rssi, UINT8 *p_data); 12195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#if (BLE_INCLUDED == TRUE) 12225738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/******************************************************************************** 12235738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** BLE Commands 12245738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project** Note: "local_controller_id" is for transport, not counted in HCI message size 12255738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project*********************************************************************************/ 12265738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SET_USED_FEAT_CMD 8 12275738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_RANDOM_ADDR_CMD 6 12285738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_WRITE_ADV_PARAMS 15 12295738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_WRITE_SCAN_RSP 31 12305738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_WRITE_ADV_ENABLE 1 12315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_WRITE_SCAN_PARAM 7 12325738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_WRITE_SCAN_ENABLE 2 12335738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_CREATE_LL_CONN 25 12345738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_CREATE_CONN_CANCEL 0 12355738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_CLEAR_WHITE_LIST 0 12365738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_ADD_WHITE_LIST 7 12375738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_REMOVE_WHITE_LIST 7 12385738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_UPD_LL_CONN_PARAMS 14 12395738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_SET_HOST_CHNL_CLASS 5 12405738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_READ_CHNL_MAP 2 12415738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_READ_REMOTE_FEAT 2 12425738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_ENCRYPT 32 12435738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_RAND 0 1244ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta#define HCIC_PARAM_SIZE_WRITE_LE_HOST_SUPPORTED 2 12455738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_BLE_RAND_DI_SIZE 8 12475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_BLE_ENCRYT_KEY_SIZE 16 12485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_START_ENC (4 + HCIC_BLE_RAND_DI_SIZE + HCIC_BLE_ENCRYT_KEY_SIZE) 12495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_LTK_REQ_REPLY (2 + HCIC_BLE_ENCRYT_KEY_SIZE) 12505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_LTK_REQ_NEG_REPLY 2 12515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_BLE_CHNL_MAP_SIZE 5 12525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#define HCIC_PARAM_SIZE_BLE_WRITE_ADV_DATA 31 12535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12545738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project/* ULP HCI command */ 12555738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_evt_mask (BT_EVENT_MASK event_mask); 12565738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12575738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_read_buffer_size (void); 12585738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12595738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_read_local_spt_feat (void); 12605738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12615738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_local_used_feat (UINT8 feat_set[8]); 12625738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12635738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_random_addr (BD_ADDR random_addr); 12645738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12655738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_write_adv_params (UINT16 adv_int_min, UINT16 adv_int_max, 12665738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 adv_type, UINT8 addr_type_own, 12675738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 addr_type_dir, BD_ADDR direct_bda, 1268b203d478f4835f5e35217874a1787e1914328f7cAndre Eisenbach UINT8 channel_map, UINT8 scan_filter_policy); 12695738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12705738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_read_adv_chnl_tx_power (void); 12715738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12725738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_adv_data (UINT8 data_len, UINT8 *p_data); 12735738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12745738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_scan_rsp_data (UINT8 data_len, UINT8 *p_scan_rsp); 12755738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12765738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_adv_enable (UINT8 adv_enable); 12775738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12785738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_scan_params (UINT8 scan_type, 12795738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 scan_int, UINT16 scan_win, 12805738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 addr_type, UINT8 scan_filter_policy); 12815738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12825738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_scan_enable (UINT8 scan_enable, UINT8 duplicate); 12835738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12845738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_create_ll_conn (UINT16 scan_int, UINT16 scan_win, 12855738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 init_filter_policy, UINT8 addr_type_peer, BD_ADDR bda_peer, UINT8 addr_type_own, 12865738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 conn_int_min, UINT16 conn_int_max, UINT16 conn_latency, UINT16 conn_timeout, 12875738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 min_ce_len, UINT16 max_ce_len); 12885738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12895738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_create_conn_cancel (void); 12905738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12915738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_read_white_list_size (void); 12925738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12935738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_clear_white_list (void); 12945738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12955738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_add_white_list (UINT8 addr_type, BD_ADDR bda); 12965738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12975738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_remove_from_white_list (UINT8 addr_type, BD_ADDR bda); 12985738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 12995738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_upd_ll_conn_params (UINT16 handle, UINT16 conn_int_min, UINT16 conn_int_max, 13005738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 conn_latency, UINT16 conn_timeout, UINT16 min_len, UINT16 max_len); 13015738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13025738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_set_host_chnl_class (UINT8 chnl_map[HCIC_BLE_CHNL_MAP_SIZE]); 13035738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13045738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_read_chnl_map (UINT16 handle); 13055738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13065738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_read_remote_feat ( UINT16 handle); 13075738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13085738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_encrypt (UINT8* key, UINT8 key_len, UINT8* plain_text, UINT8 pt_len, void *p_cmd_cplt_cback); 13095738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13105738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_rand (void *p_cmd_cplt_cback); 13115738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13125738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_start_enc ( UINT16 handle, 13135738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT8 rand[HCIC_BLE_RAND_DI_SIZE], 13145738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project UINT16 ediv, UINT8 ltk[HCIC_BLE_ENCRYT_KEY_SIZE]); 13155738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13165738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_ltk_req_reply (UINT16 handle, UINT8 ltk[HCIC_BLE_ENCRYT_KEY_SIZE]); 13175738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13185738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_ltk_req_neg_reply (UINT16 handle); 13195738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13205738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source ProjectHCI_API extern BOOLEAN btsnd_hcic_ble_read_supported_states (void); 13215738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1322ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi BattaHCI_API extern BOOLEAN btsnd_hcic_ble_write_host_supported (UINT8 le_host_spt, UINT8 simul_le_host_spt); 1323ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1324ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi BattaHCI_API extern BOOLEAN btsnd_hcic_ble_read_host_supported (void); 1325ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1326ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi BattaHCI_API extern BOOLEAN btsnd_hcic_ble_receiver_test(UINT8 rx_freq); 1327ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta 1328ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi BattaHCI_API extern BOOLEAN btsnd_hcic_ble_transmitter_test(UINT8 tx_freq, UINT8 test_data_len, 1329ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi Batta UINT8 payload); 1330ead3cde4bac0c3e32cd31f149093f004eef8ceebGanesh Ganapathi BattaHCI_API extern BOOLEAN btsnd_hcic_ble_test_end(void); 13315738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13327fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#if (defined BLE_LLT_INCLUDED) && (BLE_LLT_INCLUDED == TRUE) 13337fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 13347fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCIC_PARAM_SIZE_BLE_RC_PARAM_REQ_REPLY 14 13357fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi BattaHCI_API extern BOOLEAN btsnd_hcic_ble_rc_param_req_reply(UINT16 handle, 13367fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta UINT16 conn_int_min, UINT16 conn_int_max, 13377fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta UINT16 conn_latency, UINT16 conn_timeout, 13387fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta UINT16 min_ce_len, UINT16 max_ce_len); 13397fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 13407fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#define HCIC_PARAM_SIZE_BLE_RC_PARAM_REQ_NEG_REPLY 3 13417fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi BattaHCI_API extern BOOLEAN btsnd_hcic_ble_rc_param_req_neg_reply(UINT16 handle, UINT8 reason); 13427fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 13437fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta#endif /* BLE_LLT_INCLUDED */ 13447fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 13457fa4fba6f59f97df00aff07dbe8fb21b114b3c2cGanesh Ganapathi Batta 13465738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif /* BLE_INCLUDED */ 13475738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13485738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#ifdef __cplusplus 13495738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project} 13505738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 13515738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 13525738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project#endif 13535738f83aeb59361a0a2eda2460113f6dc919427The Android Open Source Project 1354