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