The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 2 /*!
AnnaBridge 171:3a7713b1edbc 3 * \file hci_api.h
AnnaBridge 171:3a7713b1edbc 4 *
AnnaBridge 171:3a7713b1edbc 5 * \brief HCI subsystem API.
AnnaBridge 171:3a7713b1edbc 6 *
AnnaBridge 171:3a7713b1edbc 7 * $Date: 2016-04-05 14:14:53 -0700 (Tue, 05 Apr 2016) $
AnnaBridge 171:3a7713b1edbc 8 * $Revision: 6646 $
AnnaBridge 171:3a7713b1edbc 9 *
AnnaBridge 171:3a7713b1edbc 10 * Copyright (c) 2009 Wicentric, Inc., all rights reserved.
AnnaBridge 171:3a7713b1edbc 11 * Wicentric confidential and proprietary.
AnnaBridge 171:3a7713b1edbc 12 *
AnnaBridge 171:3a7713b1edbc 13 * IMPORTANT. Your use of this file is governed by a Software License Agreement
AnnaBridge 171:3a7713b1edbc 14 * ("Agreement") that must be accepted in order to download or otherwise receive a
AnnaBridge 171:3a7713b1edbc 15 * copy of this file. You may not use or copy this file for any purpose other than
AnnaBridge 171:3a7713b1edbc 16 * as described in the Agreement. If you do not agree to all of the terms of the
AnnaBridge 171:3a7713b1edbc 17 * Agreement do not use this file and delete all copies in your possession or control;
AnnaBridge 171:3a7713b1edbc 18 * if you do not have a copy of the Agreement, you must contact Wicentric, Inc. prior
AnnaBridge 171:3a7713b1edbc 19 * to any use, copying or further distribution of this software.
AnnaBridge 171:3a7713b1edbc 20 */
AnnaBridge 171:3a7713b1edbc 21 /*************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 22 #ifndef HCI_API_H
AnnaBridge 171:3a7713b1edbc 23 #define HCI_API_H
AnnaBridge 171:3a7713b1edbc 24
AnnaBridge 171:3a7713b1edbc 25 #include "wsf_types.h"
AnnaBridge 171:3a7713b1edbc 26 #include "hci_defs.h"
AnnaBridge 171:3a7713b1edbc 27 #include "wsf_os.h"
AnnaBridge 171:3a7713b1edbc 28 #include "bda.h"
AnnaBridge 171:3a7713b1edbc 29
AnnaBridge 171:3a7713b1edbc 30 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 31 extern "C" {
AnnaBridge 171:3a7713b1edbc 32 #endif
AnnaBridge 171:3a7713b1edbc 33
AnnaBridge 171:3a7713b1edbc 34 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 35 Macros
AnnaBridge 171:3a7713b1edbc 36 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 37
AnnaBridge 171:3a7713b1edbc 38 /*! Internal event values for the HCI event and sec callbacks */
AnnaBridge 171:3a7713b1edbc 39 #define HCI_RESET_SEQ_CMPL_CBACK_EVT 0 /*! Reset sequence complete */
AnnaBridge 171:3a7713b1edbc 40 #define HCI_LE_CONN_CMPL_CBACK_EVT 1 /*! LE connection complete */
AnnaBridge 171:3a7713b1edbc 41 #define HCI_LE_ENHANCED_CONN_CMPL_CBACK_EVT 2 /*! LE enhanced connection complete */
AnnaBridge 171:3a7713b1edbc 42 #define HCI_DISCONNECT_CMPL_CBACK_EVT 3 /*! LE disconnect complete */
AnnaBridge 171:3a7713b1edbc 43 #define HCI_LE_CONN_UPDATE_CMPL_CBACK_EVT 4 /*! LE connection update complete */
AnnaBridge 171:3a7713b1edbc 44 #define HCI_LE_CREATE_CONN_CANCEL_CMD_CMPL_CBACK_EVT 5 /*! LE create connection cancel command complete */
AnnaBridge 171:3a7713b1edbc 45 #define HCI_LE_ADV_REPORT_CBACK_EVT 6 /*! LE advertising report */
AnnaBridge 171:3a7713b1edbc 46 #define HCI_READ_RSSI_CMD_CMPL_CBACK_EVT 7 /*! Read RSSI command complete */
AnnaBridge 171:3a7713b1edbc 47 #define HCI_LE_READ_CHAN_MAP_CMD_CMPL_CBACK_EVT 8 /*! LE Read channel map command complete */
AnnaBridge 171:3a7713b1edbc 48 #define HCI_READ_TX_PWR_LVL_CMD_CMPL_CBACK_EVT 9 /*! Read transmit power level command complete */
AnnaBridge 171:3a7713b1edbc 49 #define HCI_READ_REMOTE_VER_INFO_CMPL_CBACK_EVT 10 /*! Read remote version information complete */
AnnaBridge 171:3a7713b1edbc 50 #define HCI_LE_READ_REMOTE_FEAT_CMPL_CBACK_EVT 11 /*! LE read remote features complete */
AnnaBridge 171:3a7713b1edbc 51 #define HCI_LE_LTK_REQ_REPL_CMD_CMPL_CBACK_EVT 12 /*! LE LTK request reply command complete */
AnnaBridge 171:3a7713b1edbc 52 #define HCI_LE_LTK_REQ_NEG_REPL_CMD_CMPL_CBACK_EVT 13 /*! LE LTK request negative reply command complete */
AnnaBridge 171:3a7713b1edbc 53 #define HCI_ENC_KEY_REFRESH_CMPL_CBACK_EVT 14 /*! Encryption key refresh complete */
AnnaBridge 171:3a7713b1edbc 54 #define HCI_ENC_CHANGE_CBACK_EVT 15 /*! Encryption change */
AnnaBridge 171:3a7713b1edbc 55 #define HCI_LE_LTK_REQ_CBACK_EVT 16 /*! LE LTK request */
AnnaBridge 171:3a7713b1edbc 56 #define HCI_VENDOR_SPEC_CMD_STATUS_CBACK_EVT 17 /*! Vendor specific command status */
AnnaBridge 171:3a7713b1edbc 57 #define HCI_VENDOR_SPEC_CMD_CMPL_CBACK_EVT 18 /*! Vendor specific command complete */
AnnaBridge 171:3a7713b1edbc 58 #define HCI_VENDOR_SPEC_CBACK_EVT 19 /*! Vendor specific */
AnnaBridge 171:3a7713b1edbc 59 #define HCI_HW_ERROR_CBACK_EVT 20 /*! Hardware error */
AnnaBridge 171:3a7713b1edbc 60 #define HCI_LE_ADD_DEV_TO_RES_LIST_CMD_CMPL_CBACK_EVT 21 /*! LE add device to resolving list command complete */
AnnaBridge 171:3a7713b1edbc 61 #define HCI_LE_REM_DEV_FROM_RES_LIST_CMD_CMPL_CBACK_EVT 22 /*! LE remove device from resolving command complete */
AnnaBridge 171:3a7713b1edbc 62 #define HCI_LE_CLEAR_RES_LIST_CMD_CMPL_CBACK_EVT 23 /*! LE clear resolving list command complete */
AnnaBridge 171:3a7713b1edbc 63 #define HCI_LE_READ_PEER_RES_ADDR_CMD_CMPL_CBACK_EVT 24 /*! LE read peer resolving address command complete */
AnnaBridge 171:3a7713b1edbc 64 #define HCI_LE_READ_LOCAL_RES_ADDR_CMD_CMPL_CBACK_EVT 25 /*! LE read local resolving address command complete */
AnnaBridge 171:3a7713b1edbc 65 #define HCI_LE_SET_ADDR_RES_ENABLE_CMD_CMPL_CBACK_EVT 26 /*! LE set address resolving enable command complete */
AnnaBridge 171:3a7713b1edbc 66 #define HCI_LE_ENCRYPT_CMD_CMPL_CBACK_EVT 27 /*! LE encrypt command complete */
AnnaBridge 171:3a7713b1edbc 67 #define HCI_LE_RAND_CMD_CMPL_CBACK_EVT 28 /*! LE rand command complete */
AnnaBridge 171:3a7713b1edbc 68 #define HCI_LE_REM_CONN_PARAM_REP_CMD_CMPL_CBACK_EVT 29 /*! LE remote connection parameter request reply complete */
AnnaBridge 171:3a7713b1edbc 69 #define HCI_LE_REM_CONN_PARAM_NEG_REP_CMD_CMPL_CBACK_EVT 30 /*! LE remote connection parameter request negative reply complete */
AnnaBridge 171:3a7713b1edbc 70 #define HCI_LE_READ_DEF_DATA_LEN_CMD_CMPL_CBACK_EVT 31 /*! LE read suggested default data length command complete */
AnnaBridge 171:3a7713b1edbc 71 #define HCI_LE_WRITE_DEF_DATA_LEN_CMD_CMPL_CBACK_EVT 32 /*! LE write suggested default data length command complete */
AnnaBridge 171:3a7713b1edbc 72 #define HCI_LE_SET_DATA_LEN_CMD_CMPL_CBACK_EVT 33 /*! LE set data length command complete */
AnnaBridge 171:3a7713b1edbc 73 #define HCI_LE_READ_MAX_DATA_LEN_CMD_CMPL_CBACK_EVT 34 /*! LE read maximum data length command complete */
AnnaBridge 171:3a7713b1edbc 74 #define HCI_LE_REM_CONN_PARAM_REQ_CBACK_EVT 35 /*! LE remote connection parameter request */
AnnaBridge 171:3a7713b1edbc 75 #define HCI_LE_DATA_LEN_CHANGE_CBACK_EVT 36 /*! LE data length change */
AnnaBridge 171:3a7713b1edbc 76 #define HCI_LE_READ_LOCAL_P256_PUB_KEY_CMPL_CBACK_EVT 37 /*! LE read local P-256 public key */
AnnaBridge 171:3a7713b1edbc 77 #define HCI_LE_GENERATE_DHKEY_CMPL_CBACK_EVT 38 /*! LE generate DHKey complete */
AnnaBridge 171:3a7713b1edbc 78 #define HCI_WRITE_AUTH_PAYLOAD_TO_CMD_CMPL_CBACK_EVT 39 /*! Write authenticated payload timeout command complete */
AnnaBridge 171:3a7713b1edbc 79 #define HCI_AUTH_PAYLOAD_TO_EXPIRED_CBACK_EVT 40 /*! Authenticated payload timeout expired event */
AnnaBridge 171:3a7713b1edbc 80
AnnaBridge 171:3a7713b1edbc 81 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 82 Data Types
AnnaBridge 171:3a7713b1edbc 83 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 84
AnnaBridge 171:3a7713b1edbc 85 /*! Connection specification type */
AnnaBridge 171:3a7713b1edbc 86 typedef struct
AnnaBridge 171:3a7713b1edbc 87 {
AnnaBridge 171:3a7713b1edbc 88 uint16_t connIntervalMin;
AnnaBridge 171:3a7713b1edbc 89 uint16_t connIntervalMax;
AnnaBridge 171:3a7713b1edbc 90 uint16_t connLatency;
AnnaBridge 171:3a7713b1edbc 91 uint16_t supTimeout;
AnnaBridge 171:3a7713b1edbc 92 uint16_t minCeLen;
AnnaBridge 171:3a7713b1edbc 93 uint16_t maxCeLen;
AnnaBridge 171:3a7713b1edbc 94 } hciConnSpec_t;
AnnaBridge 171:3a7713b1edbc 95
AnnaBridge 171:3a7713b1edbc 96 /*! LE connection complete event */
AnnaBridge 171:3a7713b1edbc 97 typedef struct
AnnaBridge 171:3a7713b1edbc 98 {
AnnaBridge 171:3a7713b1edbc 99 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 100 uint8_t status;
AnnaBridge 171:3a7713b1edbc 101 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 102 uint8_t role;
AnnaBridge 171:3a7713b1edbc 103 uint8_t addrType;
AnnaBridge 171:3a7713b1edbc 104 bdAddr_t peerAddr;
AnnaBridge 171:3a7713b1edbc 105 uint16_t connInterval;
AnnaBridge 171:3a7713b1edbc 106 uint16_t connLatency;
AnnaBridge 171:3a7713b1edbc 107 uint16_t supTimeout;
AnnaBridge 171:3a7713b1edbc 108 uint8_t clockAccuracy;
AnnaBridge 171:3a7713b1edbc 109
AnnaBridge 171:3a7713b1edbc 110 /* enhanced fields */
AnnaBridge 171:3a7713b1edbc 111 bdAddr_t localRpa;
AnnaBridge 171:3a7713b1edbc 112 bdAddr_t peerRpa;
AnnaBridge 171:3a7713b1edbc 113 } hciLeConnCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 114
AnnaBridge 171:3a7713b1edbc 115 /*! Disconnect complete event */
AnnaBridge 171:3a7713b1edbc 116 typedef struct
AnnaBridge 171:3a7713b1edbc 117 {
AnnaBridge 171:3a7713b1edbc 118 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 119 uint8_t status;
AnnaBridge 171:3a7713b1edbc 120 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 121 uint8_t reason;
AnnaBridge 171:3a7713b1edbc 122 } hciDisconnectCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 123
AnnaBridge 171:3a7713b1edbc 124 /*! LE connection update complete event */
AnnaBridge 171:3a7713b1edbc 125 typedef struct
AnnaBridge 171:3a7713b1edbc 126 {
AnnaBridge 171:3a7713b1edbc 127 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 128 uint8_t status;
AnnaBridge 171:3a7713b1edbc 129 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 130 uint16_t connInterval;
AnnaBridge 171:3a7713b1edbc 131 uint16_t connLatency;
AnnaBridge 171:3a7713b1edbc 132 uint16_t supTimeout;
AnnaBridge 171:3a7713b1edbc 133 } hciLeConnUpdateCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 134
AnnaBridge 171:3a7713b1edbc 135 /*! LE create connection cancel command complete event */
AnnaBridge 171:3a7713b1edbc 136 typedef struct
AnnaBridge 171:3a7713b1edbc 137 {
AnnaBridge 171:3a7713b1edbc 138 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 139 uint8_t status;
AnnaBridge 171:3a7713b1edbc 140 } hciLeCreateConnCancelCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 141
AnnaBridge 171:3a7713b1edbc 142 /*! LE advertising report event */
AnnaBridge 171:3a7713b1edbc 143 typedef struct
AnnaBridge 171:3a7713b1edbc 144 {
AnnaBridge 171:3a7713b1edbc 145 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 146 uint8_t *pData;
AnnaBridge 171:3a7713b1edbc 147 uint8_t len;
AnnaBridge 171:3a7713b1edbc 148 int8_t rssi;
AnnaBridge 171:3a7713b1edbc 149 uint8_t eventType;
AnnaBridge 171:3a7713b1edbc 150 uint8_t addrType;
AnnaBridge 171:3a7713b1edbc 151 bdAddr_t addr;
AnnaBridge 171:3a7713b1edbc 152
AnnaBridge 171:3a7713b1edbc 153 /* direct fields */
AnnaBridge 171:3a7713b1edbc 154 uint8_t directAddrType;
AnnaBridge 171:3a7713b1edbc 155 bdAddr_t directAddr;
AnnaBridge 171:3a7713b1edbc 156 } hciLeAdvReportEvt_t;
AnnaBridge 171:3a7713b1edbc 157
AnnaBridge 171:3a7713b1edbc 158 /*! Read RSSI command complete event */
AnnaBridge 171:3a7713b1edbc 159 typedef struct
AnnaBridge 171:3a7713b1edbc 160 {
AnnaBridge 171:3a7713b1edbc 161 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 162 uint8_t status;
AnnaBridge 171:3a7713b1edbc 163 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 164 int8_t rssi;
AnnaBridge 171:3a7713b1edbc 165 } hciReadRssiCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 166
AnnaBridge 171:3a7713b1edbc 167 /*! LE Read channel map command complete event */
AnnaBridge 171:3a7713b1edbc 168 typedef struct
AnnaBridge 171:3a7713b1edbc 169 {
AnnaBridge 171:3a7713b1edbc 170 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 171 uint8_t status;
AnnaBridge 171:3a7713b1edbc 172 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 173 uint8_t chanMap[HCI_CHAN_MAP_LEN];
AnnaBridge 171:3a7713b1edbc 174 } hciReadChanMapCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 175
AnnaBridge 171:3a7713b1edbc 176 /*! Read transmit power level command complete event */
AnnaBridge 171:3a7713b1edbc 177 typedef struct
AnnaBridge 171:3a7713b1edbc 178 {
AnnaBridge 171:3a7713b1edbc 179 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 180 uint8_t status;
AnnaBridge 171:3a7713b1edbc 181 uint8_t handle;
AnnaBridge 171:3a7713b1edbc 182 int8_t pwrLvl;
AnnaBridge 171:3a7713b1edbc 183 } hciReadTxPwrLvlCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 184
AnnaBridge 171:3a7713b1edbc 185 /*! Read remote version information complete event */
AnnaBridge 171:3a7713b1edbc 186 typedef struct
AnnaBridge 171:3a7713b1edbc 187 {
AnnaBridge 171:3a7713b1edbc 188 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 189 uint8_t status;
AnnaBridge 171:3a7713b1edbc 190 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 191 uint8_t version;
AnnaBridge 171:3a7713b1edbc 192 uint16_t mfrName;
AnnaBridge 171:3a7713b1edbc 193 uint16_t subversion;
AnnaBridge 171:3a7713b1edbc 194 } hciReadRemoteVerInfoCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 195
AnnaBridge 171:3a7713b1edbc 196 /*! LE read remote features complete event */
AnnaBridge 171:3a7713b1edbc 197 typedef struct
AnnaBridge 171:3a7713b1edbc 198 {
AnnaBridge 171:3a7713b1edbc 199 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 200 uint8_t status;
AnnaBridge 171:3a7713b1edbc 201 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 202 uint8_t features[HCI_FEAT_LEN];
AnnaBridge 171:3a7713b1edbc 203 } hciLeReadRemoteFeatCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 204
AnnaBridge 171:3a7713b1edbc 205 /*! LE LTK request reply command complete event */
AnnaBridge 171:3a7713b1edbc 206 typedef struct
AnnaBridge 171:3a7713b1edbc 207 {
AnnaBridge 171:3a7713b1edbc 208 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 209 uint8_t status;
AnnaBridge 171:3a7713b1edbc 210 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 211 } hciLeLtkReqReplCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 212
AnnaBridge 171:3a7713b1edbc 213 /*! LE LTK request negative reply command complete event */
AnnaBridge 171:3a7713b1edbc 214 typedef struct
AnnaBridge 171:3a7713b1edbc 215 {
AnnaBridge 171:3a7713b1edbc 216 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 217 uint8_t status;
AnnaBridge 171:3a7713b1edbc 218 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 219 } hciLeLtkReqNegReplCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 220
AnnaBridge 171:3a7713b1edbc 221 /*! Encryption key refresh complete event */
AnnaBridge 171:3a7713b1edbc 222 typedef struct
AnnaBridge 171:3a7713b1edbc 223 {
AnnaBridge 171:3a7713b1edbc 224 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 225 uint8_t status;
AnnaBridge 171:3a7713b1edbc 226 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 227 } hciEncKeyRefreshCmpl_t;
AnnaBridge 171:3a7713b1edbc 228
AnnaBridge 171:3a7713b1edbc 229 /*! Encryption change event */
AnnaBridge 171:3a7713b1edbc 230 typedef struct
AnnaBridge 171:3a7713b1edbc 231 {
AnnaBridge 171:3a7713b1edbc 232 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 233 uint8_t status;
AnnaBridge 171:3a7713b1edbc 234 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 235 uint8_t enabled;
AnnaBridge 171:3a7713b1edbc 236 } hciEncChangeEvt_t;
AnnaBridge 171:3a7713b1edbc 237
AnnaBridge 171:3a7713b1edbc 238 /*! LE LTK request event */
AnnaBridge 171:3a7713b1edbc 239 typedef struct
AnnaBridge 171:3a7713b1edbc 240 {
AnnaBridge 171:3a7713b1edbc 241 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 242 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 243 uint8_t randNum[HCI_RAND_LEN];
AnnaBridge 171:3a7713b1edbc 244 uint16_t encDiversifier;
AnnaBridge 171:3a7713b1edbc 245 } hciLeLtkReqEvt_t;
AnnaBridge 171:3a7713b1edbc 246
AnnaBridge 171:3a7713b1edbc 247 /*! Vendor specific command status event */
AnnaBridge 171:3a7713b1edbc 248 typedef struct
AnnaBridge 171:3a7713b1edbc 249 {
AnnaBridge 171:3a7713b1edbc 250 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 251 uint16_t opcode;
AnnaBridge 171:3a7713b1edbc 252 } hciVendorSpecCmdStatusEvt_t;
AnnaBridge 171:3a7713b1edbc 253
AnnaBridge 171:3a7713b1edbc 254 /*! Vendor specific command complete event */
AnnaBridge 171:3a7713b1edbc 255 typedef struct
AnnaBridge 171:3a7713b1edbc 256 {
AnnaBridge 171:3a7713b1edbc 257 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 258 uint16_t opcode;
AnnaBridge 171:3a7713b1edbc 259 uint8_t param[1];
AnnaBridge 171:3a7713b1edbc 260 } hciVendorSpecCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 261
AnnaBridge 171:3a7713b1edbc 262 /*! Vendor specific event */
AnnaBridge 171:3a7713b1edbc 263 typedef struct
AnnaBridge 171:3a7713b1edbc 264 {
AnnaBridge 171:3a7713b1edbc 265 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 266 uint8_t param[1];
AnnaBridge 171:3a7713b1edbc 267 } hciVendorSpecEvt_t;
AnnaBridge 171:3a7713b1edbc 268
AnnaBridge 171:3a7713b1edbc 269 /*! Hardware error event */
AnnaBridge 171:3a7713b1edbc 270 typedef struct
AnnaBridge 171:3a7713b1edbc 271 {
AnnaBridge 171:3a7713b1edbc 272 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 273 uint8_t code;
AnnaBridge 171:3a7713b1edbc 274 } hciHwErrorEvt_t;
AnnaBridge 171:3a7713b1edbc 275
AnnaBridge 171:3a7713b1edbc 276 /*! LE encrypt command complete event */
AnnaBridge 171:3a7713b1edbc 277 typedef struct
AnnaBridge 171:3a7713b1edbc 278 {
AnnaBridge 171:3a7713b1edbc 279 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 280 uint8_t status;
AnnaBridge 171:3a7713b1edbc 281 uint8_t data[HCI_ENCRYPT_DATA_LEN];
AnnaBridge 171:3a7713b1edbc 282 } hciLeEncryptCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 283
AnnaBridge 171:3a7713b1edbc 284 /*! LE rand command complete event */
AnnaBridge 171:3a7713b1edbc 285 typedef struct
AnnaBridge 171:3a7713b1edbc 286 {
AnnaBridge 171:3a7713b1edbc 287 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 288 uint8_t status;
AnnaBridge 171:3a7713b1edbc 289 uint8_t randNum[HCI_RAND_LEN];
AnnaBridge 171:3a7713b1edbc 290 } hciLeRandCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 291
AnnaBridge 171:3a7713b1edbc 292 /*! LE remote connection parameter request reply command complete event */
AnnaBridge 171:3a7713b1edbc 293 typedef struct
AnnaBridge 171:3a7713b1edbc 294 {
AnnaBridge 171:3a7713b1edbc 295 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 296 uint8_t status;
AnnaBridge 171:3a7713b1edbc 297 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 298 } hciLeRemConnParamRepEvt_t;
AnnaBridge 171:3a7713b1edbc 299
AnnaBridge 171:3a7713b1edbc 300 /*! LE remote connection parameter request negative reply command complete event */
AnnaBridge 171:3a7713b1edbc 301 typedef struct
AnnaBridge 171:3a7713b1edbc 302 {
AnnaBridge 171:3a7713b1edbc 303 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 304 uint8_t status;
AnnaBridge 171:3a7713b1edbc 305 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 306 } hciLeRemConnParamNegRepEvt_t;
AnnaBridge 171:3a7713b1edbc 307
AnnaBridge 171:3a7713b1edbc 308 /*! LE read suggested default data len command complete event */
AnnaBridge 171:3a7713b1edbc 309 typedef struct
AnnaBridge 171:3a7713b1edbc 310 {
AnnaBridge 171:3a7713b1edbc 311 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 312 uint8_t status;
AnnaBridge 171:3a7713b1edbc 313 uint16_t suggestedMaxTxOctets;
AnnaBridge 171:3a7713b1edbc 314 uint16_t suggestedMaxTxTime;
AnnaBridge 171:3a7713b1edbc 315 } hciLeReadDefDataLenEvt_t;
AnnaBridge 171:3a7713b1edbc 316
AnnaBridge 171:3a7713b1edbc 317 /*! LE write suggested default data len command complete event */
AnnaBridge 171:3a7713b1edbc 318 typedef struct
AnnaBridge 171:3a7713b1edbc 319 {
AnnaBridge 171:3a7713b1edbc 320 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 321 uint8_t status;
AnnaBridge 171:3a7713b1edbc 322 } hciLeWriteDefDataLenEvt_t;
AnnaBridge 171:3a7713b1edbc 323
AnnaBridge 171:3a7713b1edbc 324 /*! LE set data len command complete event */
AnnaBridge 171:3a7713b1edbc 325 typedef struct
AnnaBridge 171:3a7713b1edbc 326 {
AnnaBridge 171:3a7713b1edbc 327 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 328 uint8_t status;
AnnaBridge 171:3a7713b1edbc 329 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 330 } hciLeSetDataLenEvt_t;
AnnaBridge 171:3a7713b1edbc 331
AnnaBridge 171:3a7713b1edbc 332 /*! LE read maximum data len command complete event */
AnnaBridge 171:3a7713b1edbc 333 typedef struct
AnnaBridge 171:3a7713b1edbc 334 {
AnnaBridge 171:3a7713b1edbc 335 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 336 uint8_t status;
AnnaBridge 171:3a7713b1edbc 337 uint16_t supportedMaxTxOctets;
AnnaBridge 171:3a7713b1edbc 338 uint16_t supportedMaxTxTime;
AnnaBridge 171:3a7713b1edbc 339 uint16_t supportedMaxRxOctets;
AnnaBridge 171:3a7713b1edbc 340 uint16_t supportedMaxRxTime;
AnnaBridge 171:3a7713b1edbc 341 } hciLeReadMaxDataLenEvt_t;
AnnaBridge 171:3a7713b1edbc 342
AnnaBridge 171:3a7713b1edbc 343 /*! LE remote connetion parameter request event */
AnnaBridge 171:3a7713b1edbc 344 typedef struct
AnnaBridge 171:3a7713b1edbc 345 {
AnnaBridge 171:3a7713b1edbc 346 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 347 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 348 uint16_t intervalMin;
AnnaBridge 171:3a7713b1edbc 349 uint16_t intervalMax;
AnnaBridge 171:3a7713b1edbc 350 uint16_t latency;
AnnaBridge 171:3a7713b1edbc 351 uint16_t timeout;
AnnaBridge 171:3a7713b1edbc 352 } hciLeRemConnParamReqEvt_t;
AnnaBridge 171:3a7713b1edbc 353
AnnaBridge 171:3a7713b1edbc 354 /*! LE data length change event */
AnnaBridge 171:3a7713b1edbc 355 typedef struct
AnnaBridge 171:3a7713b1edbc 356 {
AnnaBridge 171:3a7713b1edbc 357 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 358 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 359 uint16_t maxTxOctets;
AnnaBridge 171:3a7713b1edbc 360 uint16_t maxTxTime;
AnnaBridge 171:3a7713b1edbc 361 uint16_t maxRxOctets;
AnnaBridge 171:3a7713b1edbc 362 uint16_t maxRxTime;
AnnaBridge 171:3a7713b1edbc 363 } hciLeDataLenChangeEvt_t;
AnnaBridge 171:3a7713b1edbc 364
AnnaBridge 171:3a7713b1edbc 365 /*! LE local p256 ecc key command complete event */
AnnaBridge 171:3a7713b1edbc 366 typedef struct
AnnaBridge 171:3a7713b1edbc 367 {
AnnaBridge 171:3a7713b1edbc 368 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 369 uint8_t status;
AnnaBridge 171:3a7713b1edbc 370 uint8_t key[HCI_P256_KEY_LEN];
AnnaBridge 171:3a7713b1edbc 371 } hciLeP256CmplEvt_t;
AnnaBridge 171:3a7713b1edbc 372
AnnaBridge 171:3a7713b1edbc 373 /*! LE generate DH key command complete event */
AnnaBridge 171:3a7713b1edbc 374 typedef struct
AnnaBridge 171:3a7713b1edbc 375 {
AnnaBridge 171:3a7713b1edbc 376 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 377 uint8_t status;
AnnaBridge 171:3a7713b1edbc 378 uint8_t key[HCI_DH_KEY_LEN];
AnnaBridge 171:3a7713b1edbc 379 } hciLeGenDhKeyEvt_t;
AnnaBridge 171:3a7713b1edbc 380
AnnaBridge 171:3a7713b1edbc 381 /*! LE read peer resolving address command complete event */
AnnaBridge 171:3a7713b1edbc 382 typedef struct
AnnaBridge 171:3a7713b1edbc 383 {
AnnaBridge 171:3a7713b1edbc 384 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 385 uint8_t status;
AnnaBridge 171:3a7713b1edbc 386 uint8_t peerRpa[BDA_ADDR_LEN];
AnnaBridge 171:3a7713b1edbc 387 } hciLeReadPeerResAddrCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 388
AnnaBridge 171:3a7713b1edbc 389 /*! LE read local resolving address command complete event */
AnnaBridge 171:3a7713b1edbc 390 typedef struct
AnnaBridge 171:3a7713b1edbc 391 {
AnnaBridge 171:3a7713b1edbc 392 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 393 uint8_t status;
AnnaBridge 171:3a7713b1edbc 394 uint8_t localRpa[BDA_ADDR_LEN];
AnnaBridge 171:3a7713b1edbc 395 } hciLeReadLocalResAddrCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 396
AnnaBridge 171:3a7713b1edbc 397 /*! LE set address resolving enable command complete event */
AnnaBridge 171:3a7713b1edbc 398 typedef struct
AnnaBridge 171:3a7713b1edbc 399 {
AnnaBridge 171:3a7713b1edbc 400 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 401 uint8_t status;
AnnaBridge 171:3a7713b1edbc 402 } hciLeSetAddrResEnableCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 403
AnnaBridge 171:3a7713b1edbc 404 /*! LE add device to resolving list command complete event */
AnnaBridge 171:3a7713b1edbc 405 typedef struct
AnnaBridge 171:3a7713b1edbc 406 {
AnnaBridge 171:3a7713b1edbc 407 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 408 uint8_t status;
AnnaBridge 171:3a7713b1edbc 409 } hciLeAddDevToResListCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 410
AnnaBridge 171:3a7713b1edbc 411 /*! LE remove device from resolving list command complete event */
AnnaBridge 171:3a7713b1edbc 412 typedef struct
AnnaBridge 171:3a7713b1edbc 413 {
AnnaBridge 171:3a7713b1edbc 414 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 415 uint8_t status;
AnnaBridge 171:3a7713b1edbc 416 } hciLeRemDevFromResListCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 417
AnnaBridge 171:3a7713b1edbc 418 /*! LE clear resolving list command complete event */
AnnaBridge 171:3a7713b1edbc 419 typedef struct
AnnaBridge 171:3a7713b1edbc 420 {
AnnaBridge 171:3a7713b1edbc 421 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 422 uint8_t status;
AnnaBridge 171:3a7713b1edbc 423 } hciLeClearResListCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 424
AnnaBridge 171:3a7713b1edbc 425 typedef struct
AnnaBridge 171:3a7713b1edbc 426 {
AnnaBridge 171:3a7713b1edbc 427 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 428 uint8_t status;
AnnaBridge 171:3a7713b1edbc 429 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 430 } hciWriteAuthPayloadToCmdCmplEvt_t;
AnnaBridge 171:3a7713b1edbc 431
AnnaBridge 171:3a7713b1edbc 432 typedef struct
AnnaBridge 171:3a7713b1edbc 433 {
AnnaBridge 171:3a7713b1edbc 434 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 435 uint16_t handle;
AnnaBridge 171:3a7713b1edbc 436 } hciAuthPayloadToExpiredEvt_t;
AnnaBridge 171:3a7713b1edbc 437
AnnaBridge 171:3a7713b1edbc 438 /*! Union of all event types */
AnnaBridge 171:3a7713b1edbc 439 typedef union
AnnaBridge 171:3a7713b1edbc 440 {
AnnaBridge 171:3a7713b1edbc 441 wsfMsgHdr_t hdr;
AnnaBridge 171:3a7713b1edbc 442 wsfMsgHdr_t resetSeqCmpl;
AnnaBridge 171:3a7713b1edbc 443 hciLeConnCmplEvt_t leConnCmpl;
AnnaBridge 171:3a7713b1edbc 444 hciDisconnectCmplEvt_t disconnectCmpl;
AnnaBridge 171:3a7713b1edbc 445 hciLeConnUpdateCmplEvt_t leConnUpdateCmpl;
AnnaBridge 171:3a7713b1edbc 446 hciLeCreateConnCancelCmdCmplEvt_t leCreateConnCancelCmdCmpl;
AnnaBridge 171:3a7713b1edbc 447 hciLeAdvReportEvt_t leAdvReport;
AnnaBridge 171:3a7713b1edbc 448 hciReadRssiCmdCmplEvt_t readRssiCmdCmpl;
AnnaBridge 171:3a7713b1edbc 449 hciReadChanMapCmdCmplEvt_t readChanMapCmdCmpl;
AnnaBridge 171:3a7713b1edbc 450 hciReadTxPwrLvlCmdCmplEvt_t readTxPwrLvlCmdCmpl;
AnnaBridge 171:3a7713b1edbc 451 hciReadRemoteVerInfoCmplEvt_t readRemoteVerInfoCmpl;
AnnaBridge 171:3a7713b1edbc 452 hciLeReadRemoteFeatCmplEvt_t leReadRemoteFeatCmpl;
AnnaBridge 171:3a7713b1edbc 453 hciLeLtkReqReplCmdCmplEvt_t leLtkReqReplCmdCmpl;
AnnaBridge 171:3a7713b1edbc 454 hciLeLtkReqNegReplCmdCmplEvt_t leLtkReqNegReplCmdCmpl;
AnnaBridge 171:3a7713b1edbc 455 hciEncKeyRefreshCmpl_t encKeyRefreshCmpl;
AnnaBridge 171:3a7713b1edbc 456 hciEncChangeEvt_t encChange;
AnnaBridge 171:3a7713b1edbc 457 hciLeLtkReqEvt_t leLtkReq;
AnnaBridge 171:3a7713b1edbc 458 hciVendorSpecCmdStatusEvt_t vendorSpecCmdStatus;
AnnaBridge 171:3a7713b1edbc 459 hciVendorSpecCmdCmplEvt_t vendorSpecCmdCmpl;
AnnaBridge 171:3a7713b1edbc 460 hciVendorSpecEvt_t vendorSpec;
AnnaBridge 171:3a7713b1edbc 461 hciHwErrorEvt_t hwError;
AnnaBridge 171:3a7713b1edbc 462 hciLeEncryptCmdCmplEvt_t leEncryptCmdCmpl;
AnnaBridge 171:3a7713b1edbc 463 hciLeRandCmdCmplEvt_t leRandCmdCmpl;
AnnaBridge 171:3a7713b1edbc 464 hciLeReadPeerResAddrCmdCmplEvt_t leReadPeerResAddrCmdCmpl;
AnnaBridge 171:3a7713b1edbc 465 hciLeReadLocalResAddrCmdCmplEvt_t leReadLocalResAddrCmdCmpl;
AnnaBridge 171:3a7713b1edbc 466 hciLeSetAddrResEnableCmdCmplEvt_t leSetAddrResEnableCmdCmpl;
AnnaBridge 171:3a7713b1edbc 467 hciLeAddDevToResListCmdCmplEvt_t leAddDevToResListCmdCmpl;
AnnaBridge 171:3a7713b1edbc 468 hciLeRemDevFromResListCmdCmplEvt_t leRemDevFromResListCmdCmpl;
AnnaBridge 171:3a7713b1edbc 469 hciLeClearResListCmdCmplEvt_t leClearResListCmdCmpl;
AnnaBridge 171:3a7713b1edbc 470 hciLeRemConnParamRepEvt_t leRemConnParamRepCmdCmpl;
AnnaBridge 171:3a7713b1edbc 471 hciLeRemConnParamNegRepEvt_t leRemConnParamNegRepCmdCmpl;
AnnaBridge 171:3a7713b1edbc 472 hciLeReadDefDataLenEvt_t leReadDefDataLenCmdCmpl;
AnnaBridge 171:3a7713b1edbc 473 hciLeWriteDefDataLenEvt_t leWriteDefDataLenCmdCmpl;
AnnaBridge 171:3a7713b1edbc 474 hciLeSetDataLenEvt_t leSetDataLenCmdCmpl;
AnnaBridge 171:3a7713b1edbc 475 hciLeReadMaxDataLenEvt_t leReadMaxDataLenCmdCmpl;
AnnaBridge 171:3a7713b1edbc 476 hciLeRemConnParamReqEvt_t leRemConnParamReq;
AnnaBridge 171:3a7713b1edbc 477 hciLeDataLenChangeEvt_t leDataLenChange;
AnnaBridge 171:3a7713b1edbc 478 hciLeP256CmplEvt_t leP256;
AnnaBridge 171:3a7713b1edbc 479 hciLeGenDhKeyEvt_t leGenDHKey;
AnnaBridge 171:3a7713b1edbc 480 hciWriteAuthPayloadToCmdCmplEvt_t writeAuthPayloadToCmdCmpl;
AnnaBridge 171:3a7713b1edbc 481 hciAuthPayloadToExpiredEvt_t authPayloadToExpired;
AnnaBridge 171:3a7713b1edbc 482 } hciEvt_t;
AnnaBridge 171:3a7713b1edbc 483
AnnaBridge 171:3a7713b1edbc 484 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 485 Callback Function Types
AnnaBridge 171:3a7713b1edbc 486 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 487
AnnaBridge 171:3a7713b1edbc 488 typedef void (*hciEvtCback_t)(hciEvt_t *pEvent);
AnnaBridge 171:3a7713b1edbc 489 typedef void (*hciSecCback_t)(hciEvt_t *pEvent);
AnnaBridge 171:3a7713b1edbc 490 typedef void (*hciAclCback_t)(uint8_t *pData);
AnnaBridge 171:3a7713b1edbc 491 typedef void (*hciFlowCback_t)(uint16_t handle, bool_t flowDisabled);
AnnaBridge 171:3a7713b1edbc 492
AnnaBridge 171:3a7713b1edbc 493 /**************************************************************************************************
AnnaBridge 171:3a7713b1edbc 494 Function Declarations
AnnaBridge 171:3a7713b1edbc 495 **************************************************************************************************/
AnnaBridge 171:3a7713b1edbc 496
AnnaBridge 171:3a7713b1edbc 497 /*! Initialization, registration, and reset */
AnnaBridge 171:3a7713b1edbc 498 void HciEvtRegister(hciEvtCback_t evtCback);
AnnaBridge 171:3a7713b1edbc 499 void HciSecRegister(hciSecCback_t secCback);
AnnaBridge 171:3a7713b1edbc 500 void HciAclRegister(hciAclCback_t aclCback, hciFlowCback_t flowCback);
AnnaBridge 171:3a7713b1edbc 501 void HciResetSequence(void);
AnnaBridge 171:3a7713b1edbc 502 void HciVsInit(uint8_t param);
AnnaBridge 171:3a7713b1edbc 503 void HciCoreInit(void);
AnnaBridge 171:3a7713b1edbc 504 void HciCoreHandler(wsfEventMask_t event, wsfMsgHdr_t *pMsg);
AnnaBridge 171:3a7713b1edbc 505 void HciSetMaxRxAclLen(uint16_t len);
AnnaBridge 171:3a7713b1edbc 506 void HciSetAclQueueWatermarks(uint8_t queueHi, uint8_t queueLo);
AnnaBridge 171:3a7713b1edbc 507 void HciSetLeSupFeat(uint8_t feat, bool_t flag);
AnnaBridge 171:3a7713b1edbc 508
AnnaBridge 171:3a7713b1edbc 509 /*! Optimization interface */
AnnaBridge 171:3a7713b1edbc 510 uint8_t *HciGetBdAddr(void);
AnnaBridge 171:3a7713b1edbc 511 uint8_t HciGetWhiteListSize(void);
AnnaBridge 171:3a7713b1edbc 512 int8_t HciGetAdvTxPwr(void);
AnnaBridge 171:3a7713b1edbc 513 uint16_t HciGetBufSize(void);
AnnaBridge 171:3a7713b1edbc 514 uint8_t HciGetNumBufs(void);
AnnaBridge 171:3a7713b1edbc 515 uint8_t *HciGetSupStates(void);
AnnaBridge 171:3a7713b1edbc 516 uint8_t HciGetLeSupFeat(void);
AnnaBridge 171:3a7713b1edbc 517 uint16_t HciGetMaxRxAclLen(void);
AnnaBridge 171:3a7713b1edbc 518 uint8_t HciGetResolvingListSize(void);
AnnaBridge 171:3a7713b1edbc 519 bool_t HciLlPrivacySupported(void);
AnnaBridge 171:3a7713b1edbc 520
AnnaBridge 171:3a7713b1edbc 521 /*! ACL data interface */
AnnaBridge 171:3a7713b1edbc 522 void HciSendAclData(uint8_t *pAclData);
AnnaBridge 171:3a7713b1edbc 523
AnnaBridge 171:3a7713b1edbc 524 /*! Command interface */
AnnaBridge 171:3a7713b1edbc 525 void HciDisconnectCmd(uint16_t handle, uint8_t reason);
AnnaBridge 171:3a7713b1edbc 526 void HciLeAddDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr);
AnnaBridge 171:3a7713b1edbc 527 void HciLeClearWhiteListCmd(void);
AnnaBridge 171:3a7713b1edbc 528 void HciLeConnUpdateCmd(uint16_t handle, hciConnSpec_t *pConnSpec);
AnnaBridge 171:3a7713b1edbc 529 void HciLeCreateConnCmd(uint16_t scanInterval, uint16_t scanWindow, uint8_t filterPolicy,
AnnaBridge 171:3a7713b1edbc 530 uint8_t peerAddrType, uint8_t *pPeerAddr, uint8_t ownAddrType,
AnnaBridge 171:3a7713b1edbc 531 hciConnSpec_t *pConnSpec);
AnnaBridge 171:3a7713b1edbc 532 void HciLeCreateConnCancelCmd(void);
AnnaBridge 171:3a7713b1edbc 533 void HciLeEncryptCmd(uint8_t *pKey, uint8_t *pData);
AnnaBridge 171:3a7713b1edbc 534 void HciLeLtkReqNegReplCmd(uint16_t handle);
AnnaBridge 171:3a7713b1edbc 535 void HciLeLtkReqReplCmd(uint16_t handle, uint8_t *pKey);
AnnaBridge 171:3a7713b1edbc 536 void HciLeRandCmd(void);
AnnaBridge 171:3a7713b1edbc 537 void HciLeReadAdvTXPowerCmd(void);
AnnaBridge 171:3a7713b1edbc 538 void HciLeReadBufSizeCmd(void);
AnnaBridge 171:3a7713b1edbc 539 void HciLeReadChanMapCmd(uint16_t handle);
AnnaBridge 171:3a7713b1edbc 540 void HciLeReadLocalSupFeatCmd(void);
AnnaBridge 171:3a7713b1edbc 541 void HciLeReadRemoteFeatCmd(uint16_t handle);
AnnaBridge 171:3a7713b1edbc 542 void HciLeReadSupStatesCmd(void);
AnnaBridge 171:3a7713b1edbc 543 void HciLeReadWhiteListSizeCmd(void);
AnnaBridge 171:3a7713b1edbc 544 void HciLeRemoveDevWhiteListCmd(uint8_t addrType, uint8_t *pAddr);
AnnaBridge 171:3a7713b1edbc 545 void HciLeSetAdvEnableCmd(uint8_t enable);
AnnaBridge 171:3a7713b1edbc 546 void HciLeSetAdvDataCmd(uint8_t len, uint8_t *pData);
AnnaBridge 171:3a7713b1edbc 547 void HciLeSetAdvParamCmd(uint16_t advIntervalMin, uint16_t advIntervalMax, uint8_t advType,
AnnaBridge 171:3a7713b1edbc 548 uint8_t ownAddrType, uint8_t peerAddrType, uint8_t *pPeerAddr,
AnnaBridge 171:3a7713b1edbc 549 uint8_t advChanMap, uint8_t advFiltPolicy);
AnnaBridge 171:3a7713b1edbc 550 void HciLeSetEventMaskCmd(uint8_t *pLeEventMask);
AnnaBridge 171:3a7713b1edbc 551 void HciLeSetHostChanClassCmd(uint8_t *pChanMap);
AnnaBridge 171:3a7713b1edbc 552 void HciLeSetRandAddrCmd(uint8_t *pAddr);
AnnaBridge 171:3a7713b1edbc 553 void HciLeSetScanEnableCmd(uint8_t enable, uint8_t filterDup);
AnnaBridge 171:3a7713b1edbc 554 void HciLeSetScanParamCmd(uint8_t scanType, uint16_t scanInterval, uint16_t scanWindow,
AnnaBridge 171:3a7713b1edbc 555 uint8_t ownAddrType, uint8_t scanFiltPolicy);
AnnaBridge 171:3a7713b1edbc 556 void HciLeSetScanRespDataCmd(uint8_t len, uint8_t *pData);
AnnaBridge 171:3a7713b1edbc 557 void HciLeStartEncryptionCmd(uint16_t handle, uint8_t *pRand, uint16_t diversifier, uint8_t *pKey);
AnnaBridge 171:3a7713b1edbc 558 void HciReadBdAddrCmd(void);
AnnaBridge 171:3a7713b1edbc 559 void HciReadBufSizeCmd(void);
AnnaBridge 171:3a7713b1edbc 560 void HciReadLocalSupFeatCmd(void);
AnnaBridge 171:3a7713b1edbc 561 void HciReadLocalVerInfoCmd(void);
AnnaBridge 171:3a7713b1edbc 562 void HciReadRemoteVerInfoCmd(uint16_t handle);
AnnaBridge 171:3a7713b1edbc 563 void HciReadRssiCmd(uint16_t handle);
AnnaBridge 171:3a7713b1edbc 564 void HciReadTxPwrLvlCmd(uint16_t handle, uint8_t type);
AnnaBridge 171:3a7713b1edbc 565 void HciResetCmd(void);
AnnaBridge 171:3a7713b1edbc 566 void HciSetEventMaskCmd(uint8_t *pEventMask);
AnnaBridge 171:3a7713b1edbc 567 void HciSetEventMaskPage2Cmd(uint8_t *pEventMask);
AnnaBridge 171:3a7713b1edbc 568 void HciReadAuthPayloadTimeout(uint16_t handle);
AnnaBridge 171:3a7713b1edbc 569 void HciWriteAuthPayloadTimeout(uint16_t handle, uint16_t timeout);
AnnaBridge 171:3a7713b1edbc 570 void HciLeAddDeviceToResolvingListCmd(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr,
AnnaBridge 171:3a7713b1edbc 571 const uint8_t *pPeerIrk, const uint8_t *pLocalIrk);
AnnaBridge 171:3a7713b1edbc 572 void HciLeRemoveDeviceFromResolvingList(uint8_t peerAddrType, const uint8_t *pPeerIdentityAddr);
AnnaBridge 171:3a7713b1edbc 573 void HciLeClearResolvingList(void);
AnnaBridge 171:3a7713b1edbc 574 void HciLeReadResolvingListSize(void);
AnnaBridge 171:3a7713b1edbc 575 void HciLeReadPeerResolvableAddr(uint8_t addrType, const uint8_t *pIdentityAddr);
AnnaBridge 171:3a7713b1edbc 576 void HciLeReadLocalResolvableAddr(uint8_t addrType, const uint8_t *pIdentityAddr);
AnnaBridge 171:3a7713b1edbc 577 void HciLeSetAddrResolutionEnable(uint8_t enable);
AnnaBridge 171:3a7713b1edbc 578 void HciLeSetResolvablePrivateAddrTimeout(uint16_t rpaTimeout);
AnnaBridge 171:3a7713b1edbc 579 void HciVendorSpecificCmd(uint16_t opcode, uint8_t len, uint8_t *pData);
AnnaBridge 171:3a7713b1edbc 580
AnnaBridge 171:3a7713b1edbc 581 void HciLeRemoteConnParamReqReply(uint16_t handle, uint16_t intervalMin, uint16_t intervalMax, uint16_t latency,
AnnaBridge 171:3a7713b1edbc 582 uint16_t timeout, uint16_t minCeLen, uint16_t maxCeLen);
AnnaBridge 171:3a7713b1edbc 583 void HciLeRemoteConnParamReqNegReply(uint16_t handle, uint8_t reason);
AnnaBridge 171:3a7713b1edbc 584 void HciLeSetDataLen(uint16_t handle, uint16_t txOctets, uint16_t txTime);
AnnaBridge 171:3a7713b1edbc 585 void HciLeReadDefDataLen(void);
AnnaBridge 171:3a7713b1edbc 586 void HciLeWriteDefDataLen(uint16_t suggestedMaxTxOctets, uint16_t suggestedMaxTxTime);
AnnaBridge 171:3a7713b1edbc 587 void HciLeReadLocalP256PubKey(void);
AnnaBridge 171:3a7713b1edbc 588 void HciLeGenerateDHKey(uint8_t *pPubKeyX, uint8_t *pPubKeyY);
AnnaBridge 171:3a7713b1edbc 589 void HciLeReadMaxDataLen(void);
AnnaBridge 171:3a7713b1edbc 590 void HciWriteAuthPayloadTimeout(uint16_t handle, uint16_t timeout);
AnnaBridge 171:3a7713b1edbc 591
AnnaBridge 171:3a7713b1edbc 592 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 593 };
AnnaBridge 171:3a7713b1edbc 594 #endif
AnnaBridge 171:3a7713b1edbc 595
AnnaBridge 171:3a7713b1edbc 596 #endif /* HCI_API_H */