25 #ifndef LCTR_INT_CIS_H 26 #define LCTR_INT_CIS_H 49 #define LCTR_MAX_BN 0x0F 52 #define LCTR_GET_CIG_RM_HANDLE(pCigCtx) (LL_MAX_CONN + LL_MAX_ADV_SETS + (pCigCtx - &pLctrCigTbl[0])) 55 #define LCTR_GET_CIG_TM_HANDLE(pCigCtx) (LL_MAX_CONN + LL_MAX_PER_SCAN + (pCigCtx - &pLctrCigTbl[0])) 58 #define LCTR_GET_CIG_RM_CTX(rmHandle) &(pLctrCigTbl[rmHandle - (LL_MAX_CONN + LL_MAX_ADV_SETS)]) 61 #define LCTR_GET_CIG_TM_CTX(rmHandle) &(pLctrCigTbl[rmHandle - (LL_MAX_CONN + LL_MAX_PER_SCAN)]) 64 #define LCTR_CIS_DATA_PDU_START_OFFSET 3 67 #define LCTR_CIS_DATA_TX_PDU_START_OFFSET 0 371 void lctrCisExecuteSm(
lctrCisCtx_t *pCisCtx, uint8_t event);
372 bool_t lctrLlcpExecuteCisTermSm(
lctrConnCtx_t *pCtx, uint8_t event);
394 lctrCisCtx_t *lctrFindCisById(uint8_t cigId, uint8_t cisId);
395 uint8_t lctrGetNumAvailCisCtx();
400 uint8_t lctrGetNumEstCisCtxByCigCtx(
lctrCigCtx_t *pCigCtx);
432 uint8_t lctrGetNumAvailCigCtx();
435 void lctrCisDefaults(
void);
437 void lctrCisSetupChanParam(
lctrCisCtx_t *pCisCtx, uint64_t chanMask);
439 void lctrCisStoreTerminateReason(
lctrCisCtx_t *pCisCtx);
440 void lctrCisStoreDisconnectReason(
lctrCisCtx_t *pCisCtx);
441 void lctrCisStoreConnFailEstablishTerminateReason(
lctrCisCtx_t *pCisCtx);
442 void lctrCisStoreLlcpTimeoutTerminateReason(
lctrCisCtx_t *pCisCtx);
443 void lctrCisStoreLocalLowResourceTerminateReason(
lctrCisCtx_t *pCisCtx);
444 void lctrCisStoreMicFailedTerminateReason(
lctrCisCtx_t *pCisCtx);
445 void lctrCisStoreConnTimeoutTerminateReason(
lctrCisCtx_t *pCisCtx);
446 void lctrCisStoreLlcpPeerRejTerminateReason(
lctrCisCtx_t *pCisCtx);
449 void lctrCisInitFtParam(
lctrFtParam_t *pTxFtParam, uint8_t bn, uint8_t ft, uint8_t nse);
450 uint32_t lctrCisCalcSubEvtDurationUsecSeq(uint8_t phyMToS, uint8_t phySToM, uint8_t plMToS, uint8_t plSToM);
451 uint32_t lctrCisCalcSubEvtDurationUsecInter(
LlCisCigParams_t *pSetCigParam);
452 void LctrCisUpdateChanMap(uint16_t aclHandle);
453 void lctrCleanupCigCtx();
456 bool_t lctrCheckForCisLinkTerm(uint16_t aclHandle);
457 bool_t lctrCheckIsCisEstAcl(uint16_t aclHandle);
458 bool_t lctrCheckIsCisEstCis(uint16_t cisHandle);
461 uint16_t lctrIsoTxInitMem(uint8_t *pFreeMem, uint32_t freeMemSize);
469 uint8_t *lctrCisRxPduAlloc(uint16_t maxRxLen);
470 void lctrCisRxPduFree(uint8_t *pBuf);
471 void lctrCisRxEnq(uint8_t *pBuf, uint16_t eventCounter, uint16_t cisHandle);
472 uint8_t *lctrCisRxDeq(uint16_t *pConnHandle);
475 void lctrSendCisMsg(
lctrCisCtx_t *pCisCtx, uint8_t event);
476 void lctrSendCisLlcpMsg(
lctrCisCtx_t *pCisCtx, uint8_t event);
479 void lctrNotifyHostCisEst(
lctrCisCtx_t *pCisCtx, uint8_t status, uint32_t cigSyncDelayUsec);
483 uint16_t lctrCisSetupForTx(
lctrCigCtx_t *pCigCtx, uint8_t rxStatus, bool_t reqTx);
488 void lctrCisRxPostProcessing(
lctrCisCtx_t *pCisCtx, uint8_t *pRxBuf);
489 void lctrCisTxTestPayloadHandler(
lctrCisCtx_t * pCisCtx);
490 void lctrCisPowerMonitorCheckRssi(int8_t rssi, uint8_t status, uint8_t phy,
lctrConnCtx_t *pConnCtx);
507 if (lctrSetEncryptPktCountHdlr)
525 if (lctrSetDecryptPktCountHdlr)
uint32_t cigSyncDelayUsec
static void lctrCisIncPacketCounterTx(lctrCisCtx_t *pCisCtx)
Increment the Tx/encrypt packet counter.
Data length request or response PDU.
Connected isochronous stream node.
Link layer controller CIS slave interface file.
uint32_t anchorOffsetUsec
lctrInDataPathCtx_t dataPathInCtx
BLE baseband interface file.
struct node lctrCisNode_t
Connected isochronous stream node.
lctrCisDataPduHdr_t txHdr
lctrFtParamNode_t * pTail
static void lctrCisIncPacketCounterRx(lctrCisCtx_t *pCisCtx)
Increment the Rx/decrypt packet counter.
lctrFtParamNode_t * pHead
struct ftNode lctrFtParamNode_t
Flush timeout parameter node.
Connected isochronous stream context.
LlIsoLinkQual_t isoLinkQualStats
struct ftList lctrFtParamList_t
Flush timeout parameter list.
Link layer controller data channel packet interface file.
lctrFtParamList_t txFtParamList
Bluetooth Low Energy protocol specific operation parameters.
lctrFtParamList_t rxFtParamList
lctrIsoalTxCtx_t isoalTxCtx
uint32_t firstRxStartTsUsec
ISO link quality statistics.
struct list lctrCisList_t
Connected isochronous stream linked list.
lctrDataLen_t localDataPdu
lctrIsoalRxCtx_t isoalRxCtx
Internal link layer controller connection interface file.
Internal link layer controller connection interface file.
Hardware audio codec interface file.
Flush timeout parameter list.
Connected isochronous stream linked list.
#define LCTR_MAX_BN
Maximum number of burst number.
Link layer controller data channel packet interface file.
Baseband operation descriptor (BOD).
lmgrChanParam_t chanParam
Parameters related to Tx flush timeout.
lctrOutDataPathCtx_t dataPathOutCtx
Connected isochronous group context.
Flush timeout parameter node.
uint32_t cigSyncDelayUsec
Link layer manager connection interface file.
uint32_t firstRxStartTsUsec
BLE baseband interface file.
Link layer controller message data.
uint32_t nextCisOffsetUsec
Internal link layer controller interface file.
uint32_t cisSyncDelayUsec
Transmit buffer descriptor.
LlIsoPldType_t
ISO test packet payload type.
uint8_t nextSubEvtChanIdx
lctrCisDataPduHdr_t rxHdr