summaryrefslogtreecommitdiffstats
path: root/src/phLibNfc_Internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/phLibNfc_Internal.h')
-rw-r--r--src/phLibNfc_Internal.h267
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
+
+