diff options
Diffstat (limited to 'src/phLibNfc_Internal.h')
-rw-r--r-- | src/phLibNfc_Internal.h | 267 |
1 files changed, 267 insertions, 0 deletions
diff --git a/src/phLibNfc_Internal.h b/src/phLibNfc_Internal.h new file mode 100644 index 0000000..0803101 --- /dev/null +++ b/src/phLibNfc_Internal.h @@ -0,0 +1,267 @@ +/* + * Copyright (C) 2010 NXP Semiconductors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/*! + * \file phLibNfc_Internal.h + * + * Project: NFC-FRI 1.1 + * + * $Workfile:: phLibNfc_Internal.h $ + * $Modtime:: $ + * $Author: ing07385 $ + * $Revision: 1.26 $ + * + */ +#ifndef PHLIBNFC_IN_H +#define PHLIBNFC_IN_H +#include <phNfcStatus.h> +#include <phNfcCompId.h> +#include <phNfcHalTypes.h> +#include <phNfcInterface.h> +#include <phNfcConfig.h> +#include <phDbgTrace.h> +#include <phHal4Nfc.h> +#include <phFriNfc_NdefMap.h> +#include <phFriNfc_OvrHal.h> +#include <phFriNfc_SmtCrdFmt.h> +#include <phFriNfc_Llcp.h> +#include <phFriNfc_LlcpTransport.h> +#include <phOsalNfc_Timer.h> +#include <phLibNfc_SE.h> +#include <phFriNfc_NdefReg.h> +#include <phLibNfc.h> +#include <phLibNfc_initiator.h> +#include <phLibNfc_ndef_raw.h> +#include <phNfcLlcpTypes.h> + +/**Maximum number of Records.Presently set to a realistic value of 128 + Configurable upto 1K*/ +#define MAX_NO_OF_RECORDS 128U +#define CHK_NDEF_NOT_DONE 0x02U + +typedef struct phLibNfc_status +{ + unsigned RlsCb_status : 1; + unsigned DiscEnbl_status : 1; + unsigned Connect_status : 1; + unsigned TransProg_status : 1; + unsigned RelsProg_status : 1; + unsigned GenCb_pending_status : 1; + unsigned Shutdown_pending_status : 1; + unsigned Discovery_pending_status : 1; + +}Status_t; +typedef enum phLibNfc_State{ + eLibNfcHalStateShutdown = 0x00, /**< closed*/ + eLibNfcHalInitInProgress, + eLibNfcHalInited, + eLibNfcHalShutdownInProgress, + eLibNfcHalStateInitandIdle, + eLibNfcHalStateConfigReady , + eLibNfcHalStateConnect, + eLibNfcHalStateTransaction, + eLibNfcHalStatePresenceChk, + eLibNfcHalStateRelease, + eLibNfcHalStateInvalid +} phLibNfc_State_t; + + + + +typedef struct phLibNfc_Hal_CB_Info +{ + /*Init call back & its context*/ + pphLibNfc_RspCb_t pClientInitCb; + void *pClientInitCntx; + /*Shutdown call back & its context*/ + pphLibNfc_RspCb_t pClientShutdownCb; + void *pClientShtdwnCntx; + /*Connect call back & its context*/ + pphLibNfc_ConnectCallback_t pClientConnectCb; + void *pClientConCntx; + /*DisConnect call back & its context*/ + pphLibNfc_DisconnectCallback_t pClientDisConnectCb; + void *pClientDConCntx; + + /*Transceive Call back & it's context*/ + pphLibNfc_TransceiveCallback_t pClientTransceiveCb; + void *pClientTranseCntx; + /*Check Ndef Call back & it's context*/ + pphLibNfc_ChkNdefRspCb_t pClientCkNdefCb; + void *pClientCkNdefCntx; + /*Read Ndef Call back & it's context*/ + pphLibNfc_RspCb_t pClientRdNdefCb; + void *pClientRdNdefCntx; + /*Write Ndef Call back & it's context*/ + pphLibNfc_RspCb_t pClientWrNdefCb; + void *pClientWrNdefCntx; + + + /*Discover Call back & it's context*/ + pphLibNfc_RspCb_t pClientDisConfigCb; + void *pClientDisCfgCntx; + + /*Presence check Call back & it's context*/ + pphLibNfc_RspCb_t pClientPresChkCb; + void *pClientPresChkCntx; + + /*Register notification Call back & it's context*/ + phLibNfc_NtfRegister_RspCb_t pClientNtfRegRespCB; + void *pClientNtfRegRespCntx; + + /*Ndef Notification CB*/ + pphLibNfc_Ndef_Search_RspCb_t pClientNdefNtfRespCb; + void *pClientNdefNtfRespCntx; + + /*LLCP Check CB*/ + pphLibNfc_ChkLlcpRspCb_t pClientLlcpCheckRespCb; + void *pClientLlcpCheckRespCntx; + +}phLibNfc_Hal_CB_Info_t; + +typedef struct phLibNfc_NdefInfo +{ + bool_t NdefContinueRead; + uint32_t NdefActualSize, + AppWrLength; + phFriNfc_NdefMap_t *psNdefMap; + uint16_t NdefSendRecvLen; + uint16_t NdefDataCount; + phNfc_sData_t *psUpperNdefMsg; + uint32_t NdefReadTimerId, + NdefLength; + uint8_t is_ndef ; + phFriNfc_sNdefSmtCrdFmt_t *ndef_fmt ; + phLibNfc_Last_Call_t eLast_Call; + uint32_t Chk_Ndef_Timer_Id; + + + /*Format Ndef Call back & it's context*/ + pphLibNfc_RspCb_t pClientNdefFmtCb; + void *pClientNdefFmtCntx; + phLibNfc_Ndef_SrchType_t *pNdef_NtfSrch_Type; + +}phLibNfc_NdefInfo_t; + +typedef struct phLibNfc_NdefRecInfo +{ + phFriNfc_NdefReg_CbParam_t CbParam; + phFriNfc_NdefReg_t NdefReg; + uint8_t *NdefTypes_array[100]; + phFriNfc_NdefRecord_t RecordsExtracted; + uint8_t ChunkedRecordsarray[MAX_NO_OF_RECORDS]; + uint32_t NumberOfRecords; + uint8_t IsChunked[MAX_NO_OF_RECORDS]; + uint32_t NumberOfRawRecords; + uint8_t *RawRecords[MAX_NO_OF_RECORDS]; + phFriNfc_NdefReg_Cb_t *NdefCb; + phNfc_sData_t ndef_message; +}phLibNfc_NdefRecInfo_t; + +typedef struct phLibNfc_LlcpInfo +{ + /* Local parameters for LLC, given upon config + * and used upon detection. + */ + phLibNfc_Llcp_sLinkParameters_t sLocalParams; + + /* LLCP compliance flag */ + bool_t bIsLlcp; + + /* Monitor structure for LLCP Transport */ + phFriNfc_LlcpTransport_t sLlcpTransportContext; + + /* Monitor structure for LLCP LLC */ + phFriNfc_Llcp_t sLlcpContext; + + /* LLC Rx buffer */ + uint8_t pRxBuffer[1024]; + + /* LLC Tx buffer */ + uint8_t pTxBuffer[1024]; + +} phLibNfc_LlcpInfo_t; + +typedef struct phLibNfc_LibContext +{ + phHal_sHwReference_t *psHwReference; + Status_t status; + phHal_sEmulationCfg_t sCardEmulCfg; + phLibNfc_SeCtxt_t sSeContext; + phNfc_sState_t LibNfcState; + + phHal_sDevInputParam_t *psDevInputParam; + + phLibNfc_NdefInfo_t ndef_cntx; + phLibNfc_NfcIpInfo_t sNfcIp_Context; + + phFriNfc_OvrHal_t *psOverHalCtxt; + phLibNfc_Registry_Info_t RegNtfType; + uint8_t dev_cnt; + + /*To re configure the discovery wheel*/ + phLibNfc_sADD_Cfg_t sADDconfig; + uint32_t Connected_handle, + Discov_handle[MAX_REMOTE_DEVICES]; + + /*Call back function pointers */ + + phLibNfc_eDiscoveryConfigMode_t eLibNfcCfgMode; + + phHal4Nfc_DiscoveryInfo_t *psDiscInfo; + + phLibNfc_eReleaseType_t ReleaseType; + /**Transaction Related Info */ + phLibNfc_sTransceiveInfo_t *psTransInfo; + phLibNfc_sTransceiveInfo_t *psBufferedAuth; + uint8_t LastTrancvSuccess; + phLibNfc_RemoteDevList_t psRemoteDevList[MAX_REMOTE_DEVICES]; + /*To Call back function pointers & Client context*/ + phLibNfc_Hal_CB_Info_t CBInfo; + + /*Ndef RTD search Info*/ + phLibNfc_NdefRecInfo_t phLib_NdefRecCntx; + + /*LLCP Info*/ + phLibNfc_LlcpInfo_t llcp_cntx; + + /* Pointer to Lib context */ +} phLibNfc_LibContext_t,*pphLibNfc_LibContext_t; + +extern void phLibNfc_Pending_Shutdown(void); +extern pphLibNfc_LibContext_t gpphLibContext; +extern NFCSTATUS +phLibNfc_UpdateNextState( + pphLibNfc_LibContext_t psNfcHalCtxt, + phLibNfc_State_t next_state + ); + +extern void +phLibNfc_UpdateCurState( + NFCSTATUS status, + pphLibNfc_LibContext_t psNfcHalCtxt + ); + +extern void +phLibNfc_Reconnect_Mifare_Cb ( + void *pContext, + phHal_sRemoteDevInformation_t *psRemoteDevInfo, + NFCSTATUS status); + + +#endif + + |