123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 |
- #ifndef GAP_INTERNAL_H
- #define GAP_INTERNAL_H
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- #include "bcomdef.h"
- #include "hci.h"
- #include "l2cap.h"
- #include "gap.h"
- #define GAP_OSAL_TIMER_SCAN_DURATION_EVT 0x0001
- #define GAP_END_ADVERTISING_EVT 0x0002
- #define GAP_CHANGE_RESOLVABLE_PRIVATE_ADDR_EVT 0x0004
- #define ADDRTYPE_RANDOM 1
- #define GAP_PRIVATE_ADDR_CHANGE_RESOLUTION 0xEA60
- #define ADV_TOKEN_HDR 2
- #define RANDOM_ADDR_HDR 0xC0
- #define STATIC_ADDR_HDR 0xC0
- #define PRIVATE_RESOLVE_ADDR_HDR 0x40
- #if defined ( TESTMODES )
-
- #define GAP_TESTMODE_OFF 0
- #define GAP_TESTMODE_NO_RESPONSE 1
- #endif
- #define L2CAP_PARAM_UPDATE 0xFFFF
- typedef struct gapAdvToken
- {
- struct gapAdvToken *pNext;
- gapAdvDataToken_t *pToken;
- } gapAdvToken_t;
- typedef struct
- {
- uint8 dataLen;
- uint8 dataField[B_MAX_ADV_LEN];
- } gapAdvertisingData_t;
- typedef struct
- {
- uint8 dataLen;
- uint8 dataField[1];
-
- } gapAdvertRecData_t;
- typedef struct
- {
- uint8 eventType;
- uint8 addrType;
- uint8 addr[B_ADDR_LEN];
- gapAdvertRecData_t *pAdData;
- gapAdvertRecData_t *pScanData;
- } gapAdvertRec_t;
- typedef enum
- {
- GAP_ADSTATE_SET_PARAMS,
- GAP_ADSTATE_SET_MODE,
- GAP_ADSTATE_ADVERTISING,
- GAP_ADSTATE_ENDING
- } gapAdvertStatesIDs_t;
- typedef struct
- {
- uint8 taskID;
- gapAdvertStatesIDs_t state;
- gapAdvertisingParams_t params;
- } gapAdvertState_t;
- typedef struct
- {
- uint8 state;
- uint16 connectionHandle;
- smLinkSecurityReq_t secReqs;
-
-
-
- smSecurityInfo_t *pSecurityInfo;
- smIdentityInfo_t *pIdentityInfo;
- smSigningInfo_t *pSigningInfo;
- } gapAuthStateParams_t;
- typedef uint8 (*gapProcessHCICmdEvt_t)( uint16 cmdOpcode, hciEvt_CmdComplete_t *pMsg );
- typedef void (*gapProcessScanningEvt_t)( hciEvt_BLEAdvPktReport_t *pMsg );
- typedef bStatus_t (*gapCancelLinkReq_t)( uint8 taskID, uint16 connectionHandle );
- typedef uint8(*gapProcessConnEvt_t)( uint16 cmdOpcode, hciEvt_CommandStatus_t *pMsg );
- typedef uint8 (*gapProcessHCICmdCompleteEvt_t)( hciEvt_CmdComplete_t *pMsg );
- typedef void (*gapProcessAdvertisingEvt_t)( uint8 timeout );
- typedef bStatus_t (*gapSetAdvParams_t)( void );
- typedef struct
- {
- gapProcessHCICmdEvt_t pfnProcessHCICmdEvt;
- gapProcessScanningEvt_t pfnProcessScanningEvt;
- } gapCentralCBs_t;
- typedef struct
- {
- gapCancelLinkReq_t pfnCancelLinkReq;
- gapProcessConnEvt_t pfnProcessConnEvt;
- } gapCentralConnCBs_t;
- typedef struct
- {
- gapProcessHCICmdCompleteEvt_t pfnProcessHCICmdCompleteEvt;
- gapProcessAdvertisingEvt_t pfnProcessAdvertisingEvt;
- gapSetAdvParams_t pfnSetAdvParams;
- } gapPeripheralCBs_t;
- extern uint8 gapTaskID;
- extern uint8 gapUnwantedTaskID;
- extern uint8 gapAppTaskID;
- extern uint8 gapProfileRole;
- extern uint8 gapDeviceAddrMode;
-
-
- extern gapDevDiscReq_t *pGapDiscReq;
- extern gapEstLinkReq_t *pEstLink;
- extern gapCentralConnCBs_t *pfnCentralConnCBs;
- extern gapAdvertState_t *pGapAdvertState;
- extern gapPeripheralCBs_t *pfnPeripheralCBs;
- extern gapAuthStateParams_t *pAuthLink;
- extern uint16 gapPrivateAddrChangeTimeout;
- extern uint8 gapAutoAdvPrivateAddrChange;
-
- extern uint8 gapSetScanParamStatus( uint8 status );
-
- extern uint8 gapSetAdvParamsStatus( uint8 status );
-
- extern uint8 gapWriteAdvEnableStatus( uint8 status, uint16 interval );
-
- extern void gapWriteAdvDataStatus( uint8 adType, uint8 status );
-
- extern uint8 gapReadBD_ADDRStatus( uint8 status, uint8 *pBdAddr );
-
- extern uint8 gapReadBufSizeCmdStatus( hciRetParam_LeReadBufSize_t *pCmdStat );
-
- extern void gapProcessConnectionCompleteEvt( hciEvt_BLEConnComplete_t *pPkt );
-
- extern void gapProcessConnUpdateCompleteEvt( hciEvt_BLEConnUpdateComplete_t *pPkt );
-
- extern void gapProcessDisconnectCompleteEvt( hciEvt_DisconnComplete_t *pPkt );
-
- extern void gapProcessCreateLLConnCmdStatus( uint8 status );
-
- extern void gapProcessConnUpdateCmdStatus( uint8 status );
-
- extern bStatus_t gapProcessNewAddr( uint8 *pNewAddr );
-
- extern uint8 gapAddAddrAdj( uint8 addrType, uint8 *pAddr );
-
- extern uint8 gapDetermineAddrType( uint8 addrType, uint8 *pAddr );
-
- extern void gapProcessRandomAddrComplete( uint8 status );
-
- extern uint8 *gapGetSRK( void );
-
- extern uint32 gapGetSignCounter( void );
-
- extern void gapIncSignCounter( void );
-
- extern void gapUpdateConnSignCounter( uint16 connHandle, uint32 newSignCounter );
-
- extern void gapLinkCheck( uint16 connectionHandle, uint8 changeType );
-
- extern uint8 gapGetDevAddressMode( void );
-
- extern uint8 *gapGetDevAddress( uint8 real );
-
- extern uint8 *gapGetIRK( void );
-
- extern void gapPasskeyNeededCB( uint16 connectionHandle, uint8 type );
-
- extern void gapPairingCompleteCB( uint8 status, uint8 initiatorRole,
- uint16 connectionHandle,
- uint8 authState,
- smSecurityInfo_t *pEncParams,
- smSecurityInfo_t *pDevEncParams,
- smIdentityInfo_t *pIdInfo,
- smSigningInfo_t *pSigningInfo );
-
- extern void gapTerminateConnComplete( void );
-
- extern void gapSendSlaveSecurityReqEvent( uint8 taskID, uint16 connHandle, uint8 *pDevAddr, uint8 authReq );
-
- extern bStatus_t gapSetAdvParams( void );
-
- extern bStatus_t gapAddAdvToken( gapAdvDataToken_t *pToken );
-
- extern gapAdvDataToken_t *gapDeleteAdvToken( uint8 ADType );
-
- extern gapAdvToken_t *gapFindAdvToken( uint8 ADType );
-
- extern void gapCalcAdvTokenDataLen( uint8 *pAdLen, uint8 *pSrLen );
-
- extern uint8 gapValidADType( uint8 adType );
-
- extern bStatus_t gapBuildADTokens( void );
-
- extern void gapSendBondCompleteEvent( uint8 status, uint16 connectionHandle );
-
- extern void gapSendPairingReqEvent( uint8 status, uint16 connectionHandle,
- uint8 ioCap,
- uint8 oobDataFlag,
- uint8 authReq,
- uint8 maxEncKeySize,
- keyDist_t keyDist );
-
- extern uint8 *gapFindADType( uint8 adType, uint8 *pAdLen,
- uint8 dataLen, uint8 *pDataField );
-
- extern void gapRegisterCentral( gapCentralCBs_t *pfnCBs );
-
- extern void gapRegisterCentralConn( gapCentralConnCBs_t *pfnCBs);
-
- extern void gapRegisterPeripheral( gapPeripheralCBs_t *pfnCBs );
-
- extern uint8 gapIsAdvertising( void );
-
- extern uint8 gapIsScanning( void );
-
- extern bStatus_t gapCancelLinkReq( uint8 taskID, uint16 connectionHandle );
-
- extern void gapFreeEstLink( void );
-
- extern void sendEstLinkEvent( uint8 status, uint8 taskID, uint8 devAddrType,
- uint8 *pDevAddr, uint16 connectionHandle,
- uint16 connInterval, uint16 connLatency,
- uint16 connTimeout, uint16 clockAccuracy );
-
- extern void gapSendLinkUpdateEvent( uint8 status, uint16 connectionHandle,
- uint16 connInterval, uint16 connLatency,
- uint16 connTimeout );
-
- extern void gapProcessL2CAPSignalEvt( l2capSignalEvent_t *pCmd );
- #ifdef __cplusplus
- }
- #endif
- #endif
|