15d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/* 25d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Copyright (C) 2010 NXP Semiconductors 35d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 45d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Licensed under the Apache License, Version 2.0 (the "License"); 55d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * you may not use this file except in compliance with the License. 65d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * You may obtain a copy of the License at 75d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 85d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * http://www.apache.org/licenses/LICENSE-2.0 95d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 105d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Unless required by applicable law or agreed to in writing, software 115d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * distributed under the License is distributed on an "AS IS" BASIS, 125d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * See the License for the specific language governing permissions and 145d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * limitations under the License. 155d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */ 165d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 175d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/*! 185d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * \file phLibNfc_Internal.h 195d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 205d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * Project: NFC-FRI 1.1 215d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 225d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * $Workfile:: phLibNfc_Internal.h $ 235d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * $Modtime:: $ 245d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * $Author: ing07385 $ 255d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * $Revision: 1.26 $ 265d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * 275d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */ 285d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#ifndef PHLIBNFC_IN_H 295d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#define PHLIBNFC_IN_H 305d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcStatus.h> 315d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcCompId.h> 325d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcHalTypes.h> 335d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcInterface.h> 345d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcConfig.h> 355d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phDbgTrace.h> 365d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phHal4Nfc.h> 375d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phFriNfc_NdefMap.h> 385d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phFriNfc_OvrHal.h> 395d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phFriNfc_SmtCrdFmt.h> 405d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phFriNfc_Llcp.h> 415d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phFriNfc_LlcpTransport.h> 425d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phOsalNfc_Timer.h> 435d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phLibNfc_SE.h> 445d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phFriNfc_NdefReg.h> 455d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phLibNfc.h> 465d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phLibNfc_initiator.h> 475d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phLibNfc_ndef_raw.h> 485d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#include <phNfcLlcpTypes.h> 495d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 505d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly/**Maximum number of Records.Presently set to a realistic value of 128 515d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly Configurable upto 1K*/ 525d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#define MAX_NO_OF_RECORDS 128U 535d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#define CHK_NDEF_NOT_DONE 0x02U 545d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 555d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phLibNfc_status 565d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 575d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly unsigned RlsCb_status : 1; 585d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly unsigned DiscEnbl_status : 1; 595d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly unsigned Connect_status : 1; 605d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly unsigned TransProg_status : 1; 615d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly unsigned RelsProg_status : 1; 625d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly unsigned GenCb_pending_status : 1; 635d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly unsigned Shutdown_pending_status : 1; 645d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly unsigned Discovery_pending_status : 1; 655d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 665d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly}Status_t; 675d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef enum phLibNfc_State{ 685d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalStateShutdown = 0x00, /**< closed*/ 695d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalInitInProgress, 705d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalInited, 715d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalShutdownInProgress, 725d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalStateInitandIdle, 735d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalStateConfigReady , 745d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalStateConnect, 755d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalStateTransaction, 765d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalStatePresenceChk, 775d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalStateRelease, 785d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly eLibNfcHalStateInvalid 795d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly} phLibNfc_State_t; 805d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 815d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 825d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 835d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 845d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phLibNfc_Hal_CB_Info 855d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 865d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Init call back & its context*/ 875d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_RspCb_t pClientInitCb; 885d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientInitCntx; 895d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Shutdown call back & its context*/ 905d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_RspCb_t pClientShutdownCb; 915d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientShtdwnCntx; 925d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Connect call back & its context*/ 935d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_ConnectCallback_t pClientConnectCb; 945d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientConCntx; 955d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*DisConnect call back & its context*/ 965d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_DisconnectCallback_t pClientDisConnectCb; 975d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientDConCntx; 985d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 995d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Transceive Call back & it's context*/ 1005d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_TransceiveCallback_t pClientTransceiveCb; 1015d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientTranseCntx; 1025d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Check Ndef Call back & it's context*/ 1035d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_ChkNdefRspCb_t pClientCkNdefCb; 1045d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientCkNdefCntx; 1055d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Read Ndef Call back & it's context*/ 1065d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_RspCb_t pClientRdNdefCb; 1075d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientRdNdefCntx; 1085d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Write Ndef Call back & it's context*/ 1095d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_RspCb_t pClientWrNdefCb; 1105d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientWrNdefCntx; 1115d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1125d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1135d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Discover Call back & it's context*/ 1145d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_RspCb_t pClientDisConfigCb; 1155d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientDisCfgCntx; 1165d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1175d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Presence check Call back & it's context*/ 1185d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_RspCb_t pClientPresChkCb; 1195d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientPresChkCntx; 1205d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1215d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Register notification Call back & it's context*/ 1225d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_NtfRegister_RspCb_t pClientNtfRegRespCB; 1235d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientNtfRegRespCntx; 1245d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1255d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Ndef Notification CB*/ 1265d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_Ndef_Search_RspCb_t pClientNdefNtfRespCb; 1275d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientNdefNtfRespCntx; 1285d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1295d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*LLCP Check CB*/ 1305d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_ChkLlcpRspCb_t pClientLlcpCheckRespCb; 1315d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientLlcpCheckRespCntx; 1325d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 133c56a3c7bc332a6656bedf342236267b636051170Sylvain Fonteneau /*LLCP Link CB*/ 134c56a3c7bc332a6656bedf342236267b636051170Sylvain Fonteneau pphLibNfc_LlcpLinkStatusCb_t pClientLlcpLinkCb; 135c56a3c7bc332a6656bedf342236267b636051170Sylvain Fonteneau void *pClientLlcpLinkCntx; 136c56a3c7bc332a6656bedf342236267b636051170Sylvain Fonteneau 1377b187e70a5f0ffc021cc06a9f1a2bf2c0f8f8767Sunil Jogi /*LLCP service discovery*/ 1387b187e70a5f0ffc021cc06a9f1a2bf2c0f8f8767Sunil Jogi pphLibNfc_RspCb_t pClientLlcpDiscoveryCb; 1397b187e70a5f0ffc021cc06a9f1a2bf2c0f8f8767Sunil Jogi void *pClientLlcpDiscoveryCntx; 1407b187e70a5f0ffc021cc06a9f1a2bf2c0f8f8767Sunil Jogi 1415d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly}phLibNfc_Hal_CB_Info_t; 1425d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1435d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phLibNfc_NdefInfo 1445d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 1455d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly bool_t NdefContinueRead; 1465d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint32_t NdefActualSize, 1475d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly AppWrLength; 1485d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_NdefMap_t *psNdefMap; 1495d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint16_t NdefSendRecvLen; 1505d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint16_t NdefDataCount; 1515d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phNfc_sData_t *psUpperNdefMsg; 1525d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint32_t NdefReadTimerId, 1535d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly NdefLength; 1545d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint8_t is_ndef ; 1555d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_sNdefSmtCrdFmt_t *ndef_fmt ; 1565d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_Last_Call_t eLast_Call; 1575d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint32_t Chk_Ndef_Timer_Id; 1585d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1595d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1605d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Format Ndef Call back & it's context*/ 1615d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_RspCb_t pClientNdefFmtCb; 1625d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pClientNdefFmtCntx; 1635d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_Ndef_SrchType_t *pNdef_NtfSrch_Type; 1645d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1655d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly}phLibNfc_NdefInfo_t; 1665d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1675d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phLibNfc_NdefRecInfo 1685d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 1695d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_NdefReg_CbParam_t CbParam; 1705d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_NdefReg_t NdefReg; 1715d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint8_t *NdefTypes_array[100]; 1725d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_NdefRecord_t RecordsExtracted; 1735d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint8_t ChunkedRecordsarray[MAX_NO_OF_RECORDS]; 1745d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint32_t NumberOfRecords; 1755d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint8_t IsChunked[MAX_NO_OF_RECORDS]; 1765d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint32_t NumberOfRawRecords; 1775d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint8_t *RawRecords[MAX_NO_OF_RECORDS]; 1785d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_NdefReg_Cb_t *NdefCb; 1795d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phNfc_sData_t ndef_message; 1805d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly}phLibNfc_NdefRecInfo_t; 1815d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1825d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phLibNfc_LlcpInfo 1835d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 1845d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /* Local parameters for LLC, given upon config 1855d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly * and used upon detection. 1865d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly */ 1875d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_Llcp_sLinkParameters_t sLocalParams; 1885d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1895d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /* LLCP compliance flag */ 1905d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly bool_t bIsLlcp; 1915d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1925d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /* Monitor structure for LLCP Transport */ 1935d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_LlcpTransport_t sLlcpTransportContext; 1945d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1955d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /* Monitor structure for LLCP LLC */ 1965d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_Llcp_t sLlcpContext; 1975d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 1985d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /* LLC Rx buffer */ 1994bbf618b661ce7787efab168dd106115268fd539Sunil Jogi uint8_t pRxBuffer[PHFRINFC_LLCP_PDU_HEADER_MAX + PHFRINFC_LLCP_MIU_DEFAULT + PHFRINFC_LLCP_MIUX_MAX]; 2005d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2015d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /* LLC Tx buffer */ 2024bbf618b661ce7787efab168dd106115268fd539Sunil Jogi uint8_t pTxBuffer[PHFRINFC_LLCP_PDU_HEADER_MAX + PHFRINFC_LLCP_MIU_DEFAULT + PHFRINFC_LLCP_MIUX_MAX]; 2035d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2045d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly} phLibNfc_LlcpInfo_t; 2055d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2065d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellytypedef struct phLibNfc_LibContext 2075d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly{ 2085d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phHal_sHwReference_t *psHwReference; 2095d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly Status_t status; 2105d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phHal_sEmulationCfg_t sCardEmulCfg; 2115d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_SeCtxt_t sSeContext; 2125d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phNfc_sState_t LibNfcState; 2135d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2145d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phHal_sDevInputParam_t *psDevInputParam; 2155d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2165d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_NdefInfo_t ndef_cntx; 2175d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_NfcIpInfo_t sNfcIp_Context; 2185d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2195d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phFriNfc_OvrHal_t *psOverHalCtxt; 2205d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_Registry_Info_t RegNtfType; 2215d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint8_t dev_cnt; 2225d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2235d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*To re configure the discovery wheel*/ 2245d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_sADD_Cfg_t sADDconfig; 2255d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint32_t Connected_handle, 2265d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly Discov_handle[MAX_REMOTE_DEVICES]; 2275d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 22834caeca8a5ec2aedade68a77393d0aff03f9bd72Daniel Tomas /* To store the previous connected handle in case of Multiple protocol tags */ 22934caeca8a5ec2aedade68a77393d0aff03f9bd72Daniel Tomas uint32_t Prev_Connected_handle; 23034caeca8a5ec2aedade68a77393d0aff03f9bd72Daniel Tomas 2315d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Call back function pointers */ 2325d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2335d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_eDiscoveryConfigMode_t eLibNfcCfgMode; 2345d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2355d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phHal4Nfc_DiscoveryInfo_t *psDiscInfo; 2365d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2375d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_eReleaseType_t ReleaseType; 2385d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /**Transaction Related Info */ 2395d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_sTransceiveInfo_t *psTransInfo; 2405d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_sTransceiveInfo_t *psBufferedAuth; 2415d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly uint8_t LastTrancvSuccess; 2425d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_RemoteDevList_t psRemoteDevList[MAX_REMOTE_DEVICES]; 2435d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*To Call back function pointers & Client context*/ 2445d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_Hal_CB_Info_t CBInfo; 2455d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2465d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*Ndef RTD search Info*/ 2475d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_NdefRecInfo_t phLib_NdefRecCntx; 2485d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2495d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /*LLCP Info*/ 2505d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_LlcpInfo_t llcp_cntx; 2515d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2525d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly /* Pointer to Lib context */ 2535d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly} phLibNfc_LibContext_t,*pphLibNfc_LibContext_t; 2545d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2555d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellyextern void phLibNfc_Pending_Shutdown(void); 2565d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellyextern pphLibNfc_LibContext_t gpphLibContext; 2575d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellyextern NFCSTATUS 2585d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyphLibNfc_UpdateNextState( 2595d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_LibContext_t psNfcHalCtxt, 2605d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phLibNfc_State_t next_state 2615d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly ); 2625d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2635d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellyextern void 2645d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyphLibNfc_UpdateCurState( 2655d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly NFCSTATUS status, 2665d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly pphLibNfc_LibContext_t psNfcHalCtxt 2675d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly ); 2685d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2695d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pellyextern void 2705d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick PellyphLibNfc_Reconnect_Mifare_Cb ( 2715d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly void *pContext, 2725d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly phHal_sRemoteDevInformation_t *psRemoteDevInfo, 2735d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly NFCSTATUS status); 2745d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2755d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2765d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly#endif 2775d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 2785d9927ba30ba449badb9f6df0fbeb4d6aedc6e2aNick Pelly 279