51 #define LHCI_LEN_SET_EVENT_MASK_EVT             1           52 #define LHCI_LEN_RESET_EVT                      1           53 #define LHCI_LEN_READ_PWR_LVL_EVT               4           54 #define LHCI_LEN_READ_AUTH_PAYLOAD_TO_EVT       5           55 #define LHCI_LEN_WRITE_AUTH_PAYLOAD_TO_EVT      3           58 #define LHCI_LEN_READ_LOCAL_VER_EVT             9           59 #define LHCI_LEN_READ_LOCAL_SUP_CMDS_EVT        65          60 #define LHCI_LEN_READ_LOCAL_SUP_FEAT_EVT        9           61 #define LHCI_LEN_READ_BUF_SIZE_EVT              8           62 #define LHCI_LEN_READ_BD_ADDR_EVT               7           65 #define LHCI_LEN_LE_SET_EVENT_MASK_EVT          1           66 #define LHCI_LEN_LE_READ_BUF_SIZE_EVT           4           67 #define LHCI_LEN_LE_READ_LOCAL_SUP_FEAT_EVT     9           68 #define LHCI_LEN_LE_SET_RAND_ADDR_EVT           1           69 #define LHCI_LEN_LE_SET_ADV_PARAM_EVT           1           70 #define LHCI_LEN_LE_READ_ADV_TX_POWER_EVT       2           71 #define LHCI_LEN_LE_SET_ADV_DATA_EVT            1           72 #define LHCI_LEN_LE_SET_SCAN_RESP_DATA_EVT      1           73 #define LHCI_LEN_LE_SET_ADV_ENABLE_EVT          1           74 #define LHCI_LEN_LE_SET_SCAN_PARAM_EVT          1           75 #define LHCI_LEN_LE_SET_SCAN_ENABLE_EVT         1           76 #define LHCI_LEN_LE_CREATE_CONN_CANCEL_EVT      1           77 #define LHCI_LEN_LE_READ_WL_SIZE_EVT            2           78 #define LHCI_LEN_LE_CLEAR_WHITE_LIST_EVT        1           79 #define LHCI_LEN_LE_ADD_DEV_WHITE_LIST_EVT      1           80 #define LHCI_LEN_LE_REMOVE_DEV_WHITE_LIST_EVT   1           81 #define LHCI_LEN_LE_SET_HOST_CHAN_CLASS         1           82 #define LHCI_LEN_LE_READ_CHAN_MAP_EVT           8           83 #define LHCI_LEN_LE_ENCRYPT_EVT                 17          84 #define LHCI_LEN_LE_LTK_REQ_REPL_EVT            3           85 #define LHCI_LEN_LE_LTK_REQ_NEG_REPL_EVT        3           86 #define LHCI_LEN_LE_RAND_EVT                    9           87 #define LHCI_LEN_LE_READ_SUP_STATES_EVT         9           88 #define LHCI_LEN_LE_RECEIVER_TEST_EVT           1           89 #define LHCI_LEN_LE_TRANSMITTER_TEST_EVT        1           90 #define LHCI_LEN_LE_TEST_END_EVT                3           92 #define LHCI_LEN_LE_REM_CONN_PARAM_REP          3           93 #define LHCI_LEN_LE_REM_CONN_PARAM_NEG_REP      3           95 #define LHCI_LEN_LE_SET_DATA_LEN                3           96 #define LHCI_LEN_LE_READ_DEF_DATA_LEN           5           97 #define LHCI_LEN_LE_WRITE_DEF_DATA_LEN          1           98 #define LHCI_LEN_LE_ADD_DEV_RES_LIST_EVT        1           99 #define LHCI_LEN_LE_REMOVE_DEV_RES_LIST_EVT     1          100 #define LHCI_LEN_LE_CLEAR_RES_LIST_EVT          1          101 #define LHCI_LEN_LE_READ_RES_LIST_SIZE_EVT      2          102 #define LHCI_LEN_LE_READ_PEER_RES_ADDR_EVT      7          103 #define LHCI_LEN_LE_READ_LOCAL_RES_ADDR_EVT     7          104 #define LHCI_LEN_LE_SET_ADDR_RES_ENABLE_EVT     1          105 #define LHCI_LEN_LE_SET_RES_PRIV_ADDR_TO_EVT    1          106 #define LHCI_LEN_LE_READ_MAX_DATA_LEN           9          108 #define LHCI_LEN_LE_SET_PRIVACY_MODE            1          109 #define LHCI_LEN_LE_SET_ADV_SET_RAND_ADDR       1          110 #define LHCI_LEN_LE_SET_EXT_ADV_PARAM           2          111 #define LHCI_LEN_LE_SET_EXT_ADV_DATA            1          112 #define LHCI_LEN_LE_SET_EXT_SCAN_RESP_DATA      1          113 #define LHCI_LEN_LE_SET_EXT_ADV_ENABLE          1          114 #define LHCI_LEN_LE_READ_MAX_ADV_DATA_LEN       3          115 #define LHCI_LEN_LE_READ_NUM_OF_SUP_ADV_SETS    2          116 #define LHCI_LEN_LE_REMOVE_ADV_SET              1          117 #define LHCI_LEN_LE_CLEAR_ADV_SETS              1          118 #define LHCI_LEN_LE_SET_PER_ADV_PARAM           1          119 #define LHCI_LEN_LE_SET_PER_ADV_DATA            1          120 #define LHCI_LEN_LE_SET_PER_ADV_ENABLE          1          121 #define LHCI_LEN_LE_SET_EXT_SCAN_PARAM          1          122 #define LHCI_LEN_LE_SET_EXT_SCAN_ENABLE         1          123 #define LHCI_LEN_LE_PER_ADV_CREATE_SYNC_CANCEL  1          124 #define LHCI_LEN_LE_PER_ADV_TERMINATE_SYNC      1          125 #define LHCI_LEN_LE_ADD_DEV_PER_ADV_LIST        1          126 #define LHCI_LEN_LE_REM_DEV_PER_ADV_LIST        1          127 #define LHCI_LEN_LE_CLEAR_PER_ADV_LIST          1          128 #define LHCI_LEN_LE_READ_PER_ADV_LIST_SIZE      2          129 #define LHCI_LEN_LE_READ_SUP_TX_POWER           3          130 #define LHCI_LEN_LE_WRITE_RF_PATH_COMP          1          131 #define LHCI_LEN_LE_READ_RF_PATH_COMP           5          132 #define LHCI_LEN_LE_SET_EXT_SCAN_ENABLE_EVT     1          133 #define LHCI_LEN_LE_READ_PHY_EVT                5          134 #define LHCI_LEN_LE_SET_DEF_PHY_EVT             1          135 #define LHCI_LEN_LE_ENHANCED_RECEIVER_TEST_EVT  1          136 #define LHCI_LEN_LE_ENHANCED_TRANSMITTER_TEST_EVT 1        138 #define LHCI_LEN_LE_SET_PER_ADV_RCV_ENABLE      1          139 #define LHCI_LEN_LE_PER_ADV_SYNC_TRANSFER       3          140 #define LHCI_LEN_LE_PER_ADV_SET_INFO_TRANSFER   3          141 #define LHCI_LEN_LE_SET_PAST_PARAM              3          142 #define LHCI_LEN_LE_SET_DEFAULT_PAST_PARAM      1          143 #define LHCI_LEN_LE_MODIFY_SCA_EVT              1          145 #define LHCI_LEN_LE_READ_BUF_SIZE_V2            7          146 #define LHCI_LEN_LE_READ_TX_SYNC                12         147 #define LHCI_LEN_LE_REMOVE_CIG                  1          148 #define LHCI_LEN_LE_REJECT_CIS_REQ              1          149 #define LHCI_LEN_LE_BIG_TERMINATE_SYNC          2          150 #define LHCI_LEN_LE_SETUP_ISO_DATA_PATH         3          151 #define LHCI_LEN_LE_REMOVE_ISO_DATA_PATH        3          152 #define LHCI_LEN_LE_ISO_TX_TEST                 1          153 #define LHCI_LEN_LE_ISO_RX_TEST                 1          154 #define LHCI_LEN_LE_ISO_READ_TEST_COUNTER       15         155 #define LHCI_LEN_LE_ISO_TEST_END                15         156 #define LHCI_LEN_LE_SET_HOST_FEATURE            1          157 #define LHCI_LEN_LE_READ_ISO_LINK_QUAL          31         158 #define LHCI_LEN_LE_READ_ENH_TX_POWER_EVT       6          159 #define LHCI_LEN_LE_SET_TX_POWER_REPORT_EVT     3          160 #define LHCI_LEN_LE_SET_PATH_LOSS_REPORTING_PARAMS 3       161 #define LHCI_LEN_LE_SET_PATH_LOSS_REPORTING_ENABLE 3       162 #define LHCI_LEN_CONFIG_DATA_PATH               1          163 #define LHCI_LEN_READ_LOCAL_SUP_CODECS          3          164 #define LHCI_LEN_READ_LOCAL_SUP_CODEC_CAP       2          165 #define LHCI_LEN_READ_LOCAL_SUP_CONTROLLER_DLY  7          168 #define LHCI_DEF_EVT_MASK                   UINT64_C(0x00001FFFFFFFFFFF);   171 #define LHCI_DEF_EVT_PG2_MASK               UINT64_C(0x0000000000000000);   174 #define LHCI_DEF_LE_EVT_MASK                UINT64_C(0x000000000000001F);   177 #define LHCI_LOCAL_SUP_FEAT_VAL             UINT64_C(0x0000006000000000)   182 #define LHCI_BYTE_TO_BITS(x)                (8 * x)   185 #define LHCI_LEN_VS_EVT                     2   188 #define LHCI_LEN_CMD_STATUS_EVT             0xFF   191 #define LHCI_OPCODE_VS_SET_SCAN_CH_MAP           HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E0)     192 #define LHCI_OPCODE_VS_SET_EVENT_MASK            HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E1)     193 #define LHCI_OPCODE_VS_SET_RSRC_MGR_MODE         HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E2)     194 #define LHCI_OPCODE_VS_ENA_ACL_SINK              HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E3)     195 #define LHCI_OPCODE_VS_GENERATE_ACL              HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E4)     196 #define LHCI_OPCODE_VS_ENA_AUTO_GEN_ACL          HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E5)     197 #define LHCI_OPCODE_VS_SET_TX_TEST_ERR_PATT      HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E6)     198 #define LHCI_OPCODE_VS_SET_CONN_OP_FLAGS         HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E7)     199 #define LHCI_OPCODE_VS_SET_P256_PRIV_KEY         HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E8)     200 #define LHCI_OPCODE_VS_GET_PER_CHAN_MAP          HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3DE)     201 #define LHCI_OPCODE_VS_SET_HCI_SUP_CMD           HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3DF)     202 #define LHCI_OPCODE_VS_GET_ACL_TEST_REPORT       HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3E9)     203 #define LHCI_OPCODE_VS_SET_LOCAL_MIN_USED_CHAN   HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3EA)     204 #define LHCI_OPCODE_VS_GET_PEER_MIN_USED_CHAN    HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3EB)     205 #define LHCI_OPCODE_VS_VALIDATE_PUB_KEY_MODE     HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3EC)     207 #define LHCI_OPCODE_VS_SET_BD_ADDR               HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F0)     208 #define LHCI_OPCODE_VS_GET_RAND_ADDR             HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F1)     209 #define LHCI_OPCODE_VS_SET_LOCAL_FEAT            HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F2)     210 #define LHCI_OPCODE_VS_SET_OP_FLAGS              HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F3)     211 #define LHCI_OPCODE_VS_SET_ADV_TX_PWR            HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F5)     212 #define LHCI_OPCODE_VS_SET_CONN_TX_PWR           HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F6)     213 #define LHCI_OPCODE_VS_SET_ENC_MODE              HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F7)     214 #define LHCI_OPCODE_VS_SET_CHAN_MAP              HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F8)     216 #define LHCI_OPCODE_VS_SET_DIAG_MODE             HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F9)     217 #define LHCI_OPCODE_VS_SET_SNIFFER_ENABLE        HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3CD)     219 #define LHCI_OPCODE_VS_GET_PDU_FILT_STATS        HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3F4)     220 #define LHCI_OPCODE_VS_GET_SYS_STATS             HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3FA)     221 #define LHCI_OPCODE_VS_GET_ADV_STATS             HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3FB)     222 #define LHCI_OPCODE_VS_GET_SCAN_STATS            HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3FC)     223 #define LHCI_OPCODE_VS_GET_CONN_STATS            HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3FD)     224 #define LHCI_OPCODE_VS_GET_TEST_STATS            HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3FE)     225 #define LHCI_OPCODE_VS_GET_POOL_STATS            HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3FF)     227 #define LHCI_OPCODE_VS_SET_AUX_DELAY             HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D0)     228 #define LHCI_OPCODE_VS_SET_EXT_ADV_FRAG_LEN      HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D1)     229 #define LHCI_OPCODE_VS_SET_EXT_ADV_PHY_OPTS      HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D2)     230 #define LHCI_OPCODE_VS_SET_EXT_ADV_DEF_PHY_OPTS  HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D3)     231 #define LHCI_OPCODE_VS_SET_EXT_SCAN_PHY_OPTS     HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D4)     232 #define LHCI_OPCODE_VS_GENERATE_ISO              HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D5)     233 #define LHCI_OPCODE_VS_GET_ISO_TEST_REPORT       HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D6)     234 #define LHCI_OPCODE_VS_ENA_ISO_SINK              HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D7)     235 #define LHCI_OPCODE_VS_ENA_AUTO_GEN_ISO          HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D8)     236 #define LHCI_OPCODE_VS_GET_CIS_STATS             HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3D9)     238 #define LHCI_OPCODE_VS_GET_AUX_ADV_STATS         HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3DA)     239 #define LHCI_OPCODE_VS_GET_AUX_SCAN_STATS        HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3DB)     240 #define LHCI_OPCODE_VS_GET_PER_SCAN_STATS        HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3DC)     242 #define LHCI_OPCODE_VS_SET_CONN_PHY_TX_PWR       HCI_OPCODE(HCI_OGF_VENDOR_SPEC, 0x3DD)     246 #define LHCI_VS_EVT_MASK_SCAN_REPORT_EVT    0x01      247 #define LHCI_VS_EVT_MASK_DIAG_TRACE_EVT     0x02      248 #define LHCI_VS_EVT_MASK_ISO_EVENT_CMPL_EVT 0x04      295 typedef uint8_t *(*lhciServiceAcl_t)(void);
   298 typedef uint8_t *(*lhciServiceIso_t)(void);
   379 extern uint16_t lhciHandlerWatermarkUsec;
   386 void lhciReset(
void);
   389 void lhciRecv(uint8_t type, uint8_t *pBuf);
   390 void lhciSendComplete(uint8_t type, uint8_t *pBuf);
   391 bool_t lhciService(uint8_t *pType, uint16_t *pLen, uint8_t **pBuf);
   392 void lhciSendHwError(uint8_t code);
   395 bool_t lhciLlEvtHandler(
LlEvt_t *pEvt);
   396 void lhciAclSendComplete(uint16_t handle, uint8_t numBufs);
   397 uint8_t *lhciRecvAcl(
void);
   398 void lhciAclRecvPending(uint16_t handle, uint8_t numBufs);
   399 void lhciGenerateAcl(uint16_t handle, uint16_t pktLen, uint8_t numPkts);
   401 void lhciIsoSendComplete(uint8_t numHandles, uint16_t *pHandle, uint16_t *pNumPkts);
   402 uint8_t *lhciRecvIso(
void);
   403 void lhciIsoRecvPending(uint8_t numHandles, uint16_t *pHandle, uint16_t *pNumPkts);
   404 void lhciGenerateIso(uint16_t handle, uint16_t pktLen, uint8_t numPkts);
   407 bool_t lhciCommonDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   408 bool_t lhciConnDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   409 bool_t lhciMstConnDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   410 bool_t lhciMstExtConnDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   411 bool_t lhciMstEncDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   412 bool_t lhciSlvEncDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   413 bool_t lhciMstScanDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   414 bool_t lhciSlvAdvDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   415 bool_t lhciMstExtScanDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   416 bool_t lhciSlvExtAdvDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   417 bool_t lhciPrivAdvDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   418 bool_t lhciPrivConnDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   419 bool_t lhciScDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   420 bool_t lhciPhyDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   421 bool_t lhciPastDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   422 bool_t lhciMstCisDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   423 bool_t lhciSlvCisDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   424 bool_t lhciSlvBisDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   425 bool_t lhciMstBisDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   426 bool_t lhciIsoDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   427 bool_t lhciPclDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   429 bool_t lhciCommonVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   430 bool_t lhciConnVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   431 bool_t lhciMstConnVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   432 bool_t lhciMstScanVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   433 bool_t lhciSlvAdvVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   434 bool_t lhciSlvEncVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   435 bool_t lhciScVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   436 bool_t lhciMstExtScanVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   437 bool_t lhciSlvExtAdvVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   438 bool_t lhciVsExtDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   439 bool_t lhciIsoVsStdDecodeCmdPkt(
LhciHdr_t *pHdr, uint8_t *pBuf);
   442 void lhciSendCmdStatusEvt(
LhciHdr_t *pCmdHdr, uint8_t status);
   443 bool_t lhciConnEncodeEvtPkt(
LlEvt_t *pEvt);
   444 bool_t lhciConnCsEncodeEvtPkt(
LlEvt_t *pEvt);
   445 bool_t lhciMstConnEncodeEvtPkt(
LlEvt_t *pEvt);
   446 bool_t lhciMstScanEncodeEvtPkt(
LlEvt_t *pEvt);
   447 bool_t lhciSlvAdvEncodeEvtPkt(
LlEvt_t *pEvt);
   448 bool_t lhciMstExtScanEncodeEvtPkt(
LlEvt_t *pEvt);
   449 bool_t lhciSlvExtAdvEncodeEvtPkt(
LlEvt_t *pEvt);
   450 bool_t lhciMstEncEncodeEvtPkt(
LlEvt_t *pEvt);
   451 bool_t lhciSlvEncEncodeEvtPkt(
LlEvt_t *pEvt);
   452 bool_t lhciPrivConnEncodeEvtPkt(
LlEvt_t *pEvt);
   453 bool_t lhciScEncodeEvtPkt(
LlEvt_t *pEvt);
   454 bool_t lhciPhyEncodeEvtPkt(
LlEvt_t *pEvt);
   455 bool_t lhciMstCisEncodeEvtPkt(
LlEvt_t *pEvt);
   456 bool_t lhciSlvCisEncodeEvtPkt(
LlEvt_t *pEvt);
   457 bool_t lhciSlvBigEncodeEvtPkt(
LlEvt_t *pEvt);
   458 bool_t lhciMstBisEncodeEvtPkt(
LlEvt_t *pEvt);
   459 bool_t lhciIsoEncodeEvtPkt(
LlEvt_t *pEvt);
   460 bool_t lhciPclEncodeEvtPkt(
LlEvt_t *pEvt);
   463 bool_t lhciSlvVsStdEncodeEvtPkt(
LlEvt_t *pEvt);
   466 uint8_t *lhciAllocEvt(uint8_t evtCode, uint8_t paramLen);
   467 uint8_t *lhciAllocCmdCmplEvt(uint8_t paramLen, uint16_t opCode);
   468 void lhciConnSendCmdCmplEvt(
LhciHdr_t *pCmdHdr, uint8_t status, uint8_t paramLen, uint8_t *pParam, uint16_t handle);
   469 void lhciPclSendCmdCmplEvt(
LhciHdr_t *pCmdHdr, uint8_t status, uint8_t paramLen, uint8_t *pParam, uint16_t handle);
   472 uint8_t lhciUnpackConnSpec(
LlConnSpec_t *pConnSpec, 
const uint8_t *pBuf);
   485 static inline uint8_t 
lhciPackEvtHdr(uint8_t *pBuf, uint8_t evtCode, uint8_t paramLen)
   549   const uint8_t len = 
sizeof(uint8_t);
 lhciEvtHandler_t lhciEvtTbl[LHCI_MSG_TOTAL]
Event handler table. 
static uint8_t lhciPackEvtHdr(uint8_t *pBuf, uint8_t evtCode, uint8_t paramLen)
Pack an event packet header. 
#define LHCI_LEN_VS_EVT
Vendor specific event length. 
Link layer interface file. 
Control block for ISO data generator. 
static void lhciSendCmdCmplEvt(uint8_t *pEvtBuf)
Send a command complete event. 
HCI constants and definitions from the Bluetooth specification. 
static uint8_t lhciPackCmdCompleteEvt(uint8_t *pBuf, uint16_t opCode)
Pack a command complete event packet. 
void(* lhciCompHandler_t)(void)
Event complete handler call signature. 
#define UINT8_TO_BSTREAM(p, n)    
convert uint8_t to little endian byte stream, incrementing one byte. 
static uint8_t lhciPackVsEvt(uint8_t *pBuf, uint16_t vsEvtCode)
Pack a vendor specific event packet. 
lhciCmdHandler_t lhciCmdTbl[LHCI_MSG_TOTAL]
Command handler table. 
uint8_t *(* lhciServiceAcl_t)(void)
Service ACL call signature. 
bool_t(* lhciCmdHandler_t)(LhciHdr_t *pHdr, uint8_t *pBuf)
Command handler call signature. 
lhciCompHandler_t evtCompCback
static void lhciSendEvt(uint8_t *pEvtBuf)
Send an event. 
Control block of the LL HCI subsystem (cleared with resets). 
uint8_t wsfHandlerId_t
Event handler ID data type. 
Union of all event types. 
static uint8_t lhciPackCmdCompleteEvtStatus(uint8_t *pBuf, uint8_t status)
Pack a command complete status parameter. 
Byte stream to integer conversion macros. 
bool_t(* lhciEvtHandler_t)(LlEvt_t *pEvt)
Event handler call signature. 
#define UINT16_TO_BSTREAM(p, n)  
convert uint16_t to little endian byte stream, incrementing two bytes. 
uint8_t *(* lhciServiceIso_t)(void)
Service SCO call signature. 
General purpose queue service. 
Link layer HCI subsystem API. 
#define HCI_LEN_CMD_STATUS
lhciServiceAcl_t lhciServiceAcl
Receive pending handler. 
Control block of the LL HCI subsystem (persists with resets). 
Connection specification (LlCreateConn(), LlConnUpdate() and LlExtCreateConn()). 
Software foundation OS API. 
lhciServiceIso_t lhciServiceIso
Receive pending handler. 
static uint8_t lhciPackCmdStatusEvt(uint8_t *pBuf, uint8_t status, uint16_t opCode)
Pack a command status event packet.