| /* |
| * 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 phDal4Nfc.h |
| * \brief Common DAL for the upper layer. |
| * |
| * Project: NFC-FRI-1.1 |
| * |
| * $Date: Tue Nov 10 13:56:45 2009 $ |
| * $Author: ing07299 $ |
| * $Revision: 1.38 $ |
| * $Aliases: NFC_FRI1.1_WK943_R32_1,NFC_FRI1.1_WK949_PREP1,NFC_FRI1.1_WK943_R32_10,NFC_FRI1.1_WK943_R32_13,NFC_FRI1.1_WK943_R32_14,NFC_FRI1.1_WK1007_R33_1,NFC_FRI1.1_WK1007_R33_4,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $ |
| * |
| */ |
| |
| #ifndef PHDAL4NFC_H |
| #define PHDAL4NFC_H |
| |
| /** |
| * \name DAl4 NFC |
| * |
| * File: \ref phDal4Nfc.h |
| * |
| */ |
| /*@{*/ |
| #define PH_DAL4NFC_FILEREVISION "$Revision: 1.38 $" /**< \ingroup grp_file_attributes */ |
| #define PH_DAL4NFC_FILEALIASES "$Aliases: NFC_FRI1.1_WK943_R32_1,NFC_FRI1.1_WK949_PREP1,NFC_FRI1.1_WK943_R32_10,NFC_FRI1.1_WK943_R32_13,NFC_FRI1.1_WK943_R32_14,NFC_FRI1.1_WK1007_R33_1,NFC_FRI1.1_WK1007_R33_4,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $" |
| /**< \ingroup grp_file_attributes */ |
| /*@}*/ |
| /*************************** Includes *******************************/ |
| /** \defgroup grp_nfc_dal DAL Component |
| * |
| * |
| * |
| */ |
| #include <hardware/nfc.h> |
| /**< Basic type definitions */ |
| #include <phNfcTypes.h> |
| /**< Generic Interface Layer Function Definitions */ |
| #include <phNfcInterface.h> |
| /*********************** End of includes ****************************/ |
| |
| /***************************** Macros *******************************/ |
| /**< Used for messaging by DAL as well as Upper Layers */ |
| #define PH_DAL4NFC_MESSAGE_BASE PH_LIBNFC_DEFERREDCALL_MSG |
| |
| /************************ End of macros *****************************/ |
| |
| |
| /********************* Structures and enums *************************/ |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * DAL context : This contains the information of the upper layer callback |
| * and hardware reference. |
| */ |
| typedef struct phDal4Nfc_SContext |
| { |
| phNfcIF_sCallBack_t cb_if; /**<Callback info registered by upper layer*/ |
| volatile uint8_t hw_valid; /**<Flag - shows Hardware present or not */ |
| void *pHwRef; /**<Hardware Reference*/ |
| nfc_pn544_device_t *pDev; /**<Android HAL reference*/ |
| }phDal4Nfc_SContext_t,*pphDal4Nfc_SContext_t; |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * DAL enum for Messages : This contains the enums used for |
| * posting messages to the application. |
| */ |
| typedef enum phDal4Nfc_Messages_en |
| { |
| /**<Read message type used to post Read DAL Message to dispatch routine.Dispatch routine |
| calls read callback registered by upper layer */ |
| PHDAL4NFC_READ_MESSAGE = 0, |
| /**<Readwait message type used to post Read wait DAL Message to dispatch routine.Dispatch routine |
| calls read wait callback registered by upper layer */ |
| PHDAL4NFC_READWAIT_MESSAGE, |
| /**<Write message type used to post write DAL Message to dispatch routine.Dispatch routine |
| calls write wait callback registered by upper layer */ |
| PHDAL4NFC_WRITE_MESSAGE, |
| /**<Notify message type used to post Notify DAL Message to dispatch routine.Dispatch routine |
| calls notify callback registered by upper layer */ |
| PHDAL4NFC_NOTIFY_MESSAGE |
| }phDal4Nfc_Messages_en_t; |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * \brief DAL Message structure definition.This structure contains |
| * |
| * This structure contains details like message type,read ,read wait and write callbacks |
| * reference details as registered by upper layer. |
| */ |
| typedef struct phDal4Nfc_Message |
| { |
| /**<Refenrece to context.Context can be DAL context */ |
| void *pContext; |
| /**<Reference to hardware reference strucutre */ |
| void *pHwRef; |
| /**<DAL message of type \ref phDal4Nfc_Messages_en_t*/ |
| phDal4Nfc_Messages_en_t eMsgType; |
| /**<Transaction specific information of type \ref phNfc_sTransactionInfo_t*/ |
| phNfc_sTransactionInfo_t transactInfo; |
| /**<Reference to read callback,registered by upper layer.This is of type \ref pphNfcIF_Transact_Completion_CB_t*/ |
| pphNfcIF_Transact_Completion_CB_t readCbPtr; |
| /**<Reference to write callback ,registered by upper layer.This is of type \ref pphNfcIF_Transact_Completion_CB_t*/ |
| pphNfcIF_Transact_Completion_CB_t writeCbPtr; |
| } phDal4Nfc_Message_t,*pphDal4Nfc_Message_t; |
| |
| typedef phLibNfc_sConfig_t phDal4Nfc_sConfig_t; |
| typedef phLibNfc_sConfig_t *pphDal4Nfc_sConfig_t; |
| |
| /****************** End of structures and enums *********************/ |
| |
| /******************** Function declarations *************************/ |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| *\brief Allows to register upper layer with DAL layer. |
| * This API allows upper layer to register with DAL layer.As part of registration |
| *<br>1.Exports DAL interfaces and DAL layer context to upper layer. |
| *Exported DAL interfaces are : |
| *<br><br>.phDal4Nfc_Shutdown |
| *<br><br>.phDal4Nfc_Write |
| *<br><br>.phDal4Nfc_Read |
| *<br><br>.phDal4Nfc_ReadWait |
| *<br><br>.phDal4Nfc_ReadWaitCancel |
| *<br><br>phDal4Nfc_Unregister |
| *<br><br>.Registeres upper layer callbacks and upper layer context with DAL layer. |
| *For details refer to \ref phNfcIF_sReference_t. |
| *Registration details are valid unless upper layer calls \ref phDal4Nfc_Unregister() |
| or \ref phDal4Nfc_Shutdown called. |
| |
| * \param[in,out] psRefer holds DAL exported interface references once registration |
| * sucessful.This also contains transmit and receive buffer |
| * references. |
| * |
| * \param[in] if_cb Contains upper layer callback reference details, which are used |
| * by DAL layer during callback notification. |
| * These callbacks gets registered with DAL layer. |
| * |
| |
| * \param[out] psIFConf Currently this parameter not used.This parameter to be other than NULL. |
| * |
| * |
| * \retval NFCSTATUS_SUCCESS Operation is successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function is invalid. |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_Config()",URL="\ref phDal4Nfc_Config"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Register()",URL="\ref phDal4Nfc_Register"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| |
| extern |
| NFCSTATUS |
| phDal4Nfc_Register( |
| phNfcIF_sReference_t *psRefer, |
| phNfcIF_sCallBack_t if_cb, |
| void *psIFConf |
| ); |
| |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * \brief Allows upper layer to unregister with DAL layer. |
| * This interface allows to unregister upper layer callback interfaces with DAL layer. |
| * \note: Once this this API is called DAL layer stops notifying upper layer callbacks in case |
| * any events reported within DAL. |
| * |
| * \param[in] pContext DAL context is provided by the upper layer. |
| * The DAL context earlier was given to the |
| * upper layer through the \ref |
| * \e phDal4Nfc_Register() function. |
| * \param[in] pHwRef for future use .Currently this parameter is not used. |
| * This needs to be other than NULL. |
| * |
| * \retval NFCSTATUS_SUCCESS Unregistration successful. |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function is invalid. |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_Config()",URL="\ref phDal4Nfc_Config"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Register()",URL="\ref phDal4Nfc_Register"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="Upper layer can issue Unregistration later"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Unregister()",URL="\ref phDal4Nfc_Unregister"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| |
| |
| extern |
| NFCSTATUS |
| phDal4Nfc_Unregister( |
| void *pContext, |
| void *pHwRef |
| ); |
| |
| |
| /** |
| |
| * \ingroup grp_nfc_dal |
| * |
| *\brief This interface allows to initialize DAL layer. |
| * This API implements initialization of DAL layer. This includes : |
| * |
| * <br><br>. Initialize parameters for HW Interface. |
| *<br><br>. Initializing read and writer threads. |
| *<br><br>. Initializing read and write task specific events and event specific configurations. |
| *<br><br>. Initializing DAL layer specific details. |
| * |
| * \param[in] pContext DAL context provided by the upper layer. |
| * The DAL context will be exported to the |
| * upper layer via upper layer registration interface. |
| * \param[in] pHwRef information of the hardware |
| * |
| * \retval NFCSTATUS_SUCCESS DAL initialization successful. |
| * \retval NFCSTATUS_INVALID_DEVICE The device is not enumerated or the |
| * Hardware Reference points to a device |
| * which does not exist. Alternatively, |
| * also already open devices produce this |
| * error. |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function |
| * is invalid. |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_Config()",URL="\ref phDal4Nfc_Config"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Register()",URL="\ref phDal4Nfc_Register"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Init()",URL="\ref phDal4Nfc_Init"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="DAL intialised ,read for read /write operations"]; |
| *\endmsc |
| */ |
| |
| extern |
| NFCSTATUS |
| phDal4Nfc_Init( |
| void *pContext, |
| void *pHwRef |
| ); |
| |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * \brief This API implements Deintialisation of DAL layer. |
| * |
| *This API implements Deintialisation of DAL layer. It includes : |
| *<br><br>.Releases all the resources.( context,memory resources,read/write buffers). |
| *<br><br>.closes COMxx port which is used during DAL session. |
| *<br><br>.Terminates Reader and writer tasks. |
| * |
| * \param[in] pContext DAL context is provided by the upper layer. |
| * The DAL context earlier was given to the |
| * upper layer through the |
| * \ref \e phDal4Nfc_Register() function |
| * \param[in] pHwRef hardware reference context. |
| * |
| * \retval NFCSTATUS_SUCCESS DAL shutdown successful |
| * \retval NFCSTATUS_FAILED DAL shutdown failed(example.unable to |
| * suspend thread, close HW Interface etc.) |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function |
| * is invalid. |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_Config()",URL="\ref phDal4Nfc_Config"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Register()",URL="\ref phDal4Nfc_Register"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Init()",URL="\ref phDal4Nfc_Init"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="Perform read write operation"]; |
| *--- [label="DAL can be shutdown during upper layer deinit sequence"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Shutdown()",URL="\ref phDal4Nfc_Shutdown"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| |
| extern |
| NFCSTATUS |
| phDal4Nfc_Shutdown( |
| void *pContext, |
| void *pHwRef |
| ); |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * \brief Allows to write data block to HW Interface. |
| * |
| * This asynchronous function writes the given block of data to the driver. |
| * This interface enables writer thread in case their is no write requests pending and returns |
| * sucessfully.Once writer thread completes write operation, it notifies upper layer using callback |
| * mechanism . |
| * \note writer thread notifies upper layer callback notified using windows messaging mechanism |
| * under deferred call context. |
| * |
| * |
| * \param[in] pContext DAL context is provided by the upper layer. |
| * The DAL |
| * context earlier was given to the upper layer |
| * through the \ref \e phDal4Nfc_Register() function |
| * \param[in] pHwRef information of the hardware. |
| * \param[in] pBuffer The information given by the upper layer to |
| * send it to the lower layer |
| * \param[in] length The length of pLlc_Buf, that needs to be sent |
| * to the lower layer is given by the upper layer |
| * |
| * \retval NFCSTATUS_PENDING If the command is yet to be process. |
| * \retval NFCSTATUS_BUSY BUSY with previous write operation |
| * \retval NFCSTATUS_INVALID_DEVICE The device has not been opened or has |
| * been disconnected meanwhile |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function |
| * is invalid. |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *--- [label="Configure,intialise DAL layer and Register with DAL "]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Write()",URL="\ref phDal4Nfc_Write()"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_PENDING"]; |
| *--- [label="DAL posts write message to main thread under deferred call context"]; |
| *phDal4Nfc=>phDal4Nfc [label="phDal4Nfc_DeferredCall()",URL="\ref phDal4Nfc_DeferredCall()"]; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_DeferredCb()",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *phDal4Nfc=>UpperLayer [label="send_complete",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| extern |
| NFCSTATUS |
| phDal4Nfc_Write( |
| void *pContext, |
| void *pHwRef, |
| uint8_t *pBuffer, |
| uint16_t length |
| ); |
| |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * \brief Allows to Read data block from HW Interface. |
| * |
| * This asynchronous function reads the data from the driver in which length |
| * and the required buffer are sent by upper layer. This interface enables |
| * reader thread in case there is no read requests pending and returns sucessfully. |
| * Once read operation is complete, it notifies to upper layer through callback |
| * registered in the \b \e phDal4Nfc_Register() function. |
| * |
| * |
| * \param[in] pContext DAL context is provided by the upper layer. |
| * The DAL context earlier was given to the |
| * upper layer through the |
| * \b \e phDal4Nfc_Register() function |
| * \param[in] pHwRef Information of the hardware |
| * \param[in] pBuffer The information given by the upper layer to |
| * receive data from the lower layer |
| * \param[in] length The length of pBuffer given by the upper layer |
| * |
| * \retval NFCSTATUS_PENDING If the command is yet to be processed. |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function |
| * is invalid. |
| * \retval NFCSTATUS_INVALID_DEVICE The device has not been opened or has |
| * been disconnected meanwhile |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *--- [label="Configure,intialise DAL layer and Register with DAL "]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Write()",URL="\ref phDal4Nfc_Write()"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_PENDING"]; |
| *--- [label="DAL posts write message to main thread under deferred call context"]; |
| *phDal4Nfc=>phDal4Nfc [label="phDal4Nfc_DeferredCall()",URL="\ref phDal4Nfc_DeferredCall()"]; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_DeferredCb()",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *phDal4Nfc=>UpperLayer [label="send_complete",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="upper layer can issue read request"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Read()",URL="\ref phDal4Nfc_Read()"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_PENDING"]; |
| *--- [label="DAL posts read message to main thread under deferred call context"]; |
| *phDal4Nfc=>phDal4Nfc [label="phDal4Nfc_DeferredCall()",URL="\ref phDal4Nfc_DeferredCall()"]; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_DeferredCb()",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *phDal4Nfc=>UpperLayer [label="receive_complete",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| |
| *\endmsc |
| */ |
| |
| extern |
| NFCSTATUS |
| phDal4Nfc_Read( |
| void *pContext, |
| void *pHwRef, |
| uint8_t *pBuffer, |
| uint16_t length |
| ); |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * \brief Allows to wait before reading data block from HW Interface. |
| * |
| * This asynchronous function waits before reading the data from the |
| * driver in which length and the required buffer are sent by upper layer. |
| * This interface enables reader thread to wait for predefined time period |
| * (predefined time period is configurable by the DAL implementer) to complete |
| * read request.Once read operation is complete, it notifies to upper layer |
| * through callback registered in the \b \e phDal4Nfc_Register() |
| * function. Read request is expected to get complete within this time. |
| * |
| * \param[in] pContext DAL context is provided by the upper layer. |
| * The DAL context earlier was given to the |
| * upper layer through the |
| * \b \e phDal4Nfc_Register() function |
| * \param[in] pHwRef Information of the hardware |
| * \param[in] pBuffer The information given by the upper layer to |
| * receive data from the lower layer |
| * \param[in] length The length of pBuffer given by the upper layer |
| * |
| * \retval NFCSTATUS_SUCCESS DAL receive successful |
| * \retval NFCSTATUS_BUSY BUSY with previous receive operation |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the |
| * function is invalid. |
| * \retval NFCSTATUS_INVALID_DEVICE The device has not been opened or has |
| * been disconnected meanwhile |
| * |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *--- [label="Configure,intialise DAL layer and Register with DAL "]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Write()",URL="\ref phDal4Nfc_Write()"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_PENDING"]; |
| *--- [label="DAL posts write message to main thread under deferred call context"]; |
| *phDal4Nfc=>phDal4Nfc [label="phDal4Nfc_DeferredCall()",URL="\ref phDal4Nfc_DeferredCall()"]; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_DeferredCb()",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *phDal4Nfc=>UpperLayer [label="send_complete",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="upper layer can issue read wait request "]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_ReadWait()",URL="\ref phDal4Nfc_ReadWait()"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_PENDING"]; |
| *--- [label="DAL posts read wait message to main thread under deferred call context"]; |
| *phDal4Nfc=>phDal4Nfc [label="phDal4Nfc_DeferredCall()",URL="\ref phDal4Nfc_DeferredCall()"]; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_DeferredCb()",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *phDal4Nfc=>UpperLayer [label="receive_complete",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| * |
| *\endmsc |
| */ |
| |
| |
| extern |
| NFCSTATUS |
| phDal4Nfc_ReadWait( |
| void *pContext, |
| void *pHwRef, |
| uint8_t *pBuffer, |
| uint16_t length |
| ); |
| |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| *\brief Aborts read wait opertaion. |
| * |
| * This asynchronous function issues cancellation of the outstanding |
| * \b \e phDal4Nfc_ReadWait request.If upper layer wants to cancel the |
| * ongoing read wait operation this function is used. e.g. to abort the |
| * transactions. |
| * |
| * \param[in] pContext DAL context is provided by the upper layer. |
| * The DAL context earlier was given to the |
| * upper layer through the |
| * \b \e phDal4Nfc_Register() function |
| * \param[in] pHwRef Information of the hardware |
| * |
| * \retval NFCSTATUS_SUCCESS DAL receive successful |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the |
| * function is invalid. |
| * \retval NFCSTATUS_INVALID_DEVICE The device has not been opened |
| * or has been disconnected meanwhile |
| * \retval NFCSTATUS_BOARD_COMMUNICATION_ERROR A board communication error occurred |
| (e.g. configuration went wrong). |
| * |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *--- [label="Configure,intialise DAL layer and Register with DAL "]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Write()",URL="\ref phDal4Nfc_Write()"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_PENDING"]; |
| *--- [label="DAL posts write message to main thread under deferred call context"]; |
| *phDal4Nfc=>phDal4Nfc [label="phDal4Nfc_DeferredCall()",URL="\ref phDal4Nfc_DeferredCall()"]; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_DeferredCb()",URL="\ref Call phDal4Nfc_DeferredCb()"]; |
| *phDal4Nfc=>UpperLayer [label="send_complete",URL="\ref phDal4Nfc_DeferredCb()"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="upper layer can issue read wait request "]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_ReadWait()",URL="\ref phDal4Nfc_ReadWait()"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_PENDING"]; |
| *--- [label="Issue Read wait cancel request here"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_ReadWaitCancel()",URL="\ref phDal4Nfc_ReadWaitCancel()"]; |
| **UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| extern |
| NFCSTATUS |
| phDal4Nfc_ReadWaitCancel( |
| void *pContext, |
| void *pHwRef |
| ); |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * \brief DAL config function |
| * This synchronous function configures the given HW Interface and |
| * sends the HANDLE to the caller. |
| * |
| * \param[in] config DAL configuration details as provided |
| * by the upper layer. |
| * \param[in,out] phwref pointer to which valid Handle to DAL |
| * interface is assigned. |
| * |
| * \retval NFCSTATUS_SUCCESS Configuration happened successfully. |
| * \retval NFCSTATUS_INVALID_PARAMETER At least one parameter of the function |
| * is invalid. |
| * \retval NFCSTATUS_FAILED Configuration failed(example.unable to |
| * open HW Interface). |
| * \retval NFCSTATUS_INVALID_DEVICE The device has not been opened or |
| * has been disconnected meanwhile |
| * \retval NFCSTATUS_BOARD_COMMUNICATION_ERROR A board communication error occurred |
| (e.g. configuration went wrong). |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_Config()",URL="\ref phDal4Nfc_Config"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| extern |
| NFCSTATUS |
| phDal4Nfc_Config ( |
| pphDal4Nfc_sConfig_t config, |
| void **phwref |
| ); |
| |
| /** |
| * \ingroup grp_nfc_dal |
| * |
| * \brief Release configuration for the given HW Interface. |
| * |
| * \copydoc page_reg Release all the variables of the DAL component, that has been |
| * initialised in \b phDal4Nfc_Config function (Synchronous function). |
| * |
| * \param[in] pHwRef Link information of the hardware |
| * |
| * \retval NFCSTATUS_SUCCESS DAL Configuration Released successfully. |
| * \retval NFCSTATUS_FAILED Configuration release failed(example: Unable to close Com port). |
| * |
| *\msc |
| *ClientApp,UpperLayer,phDal4Nfc; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_Config()",URL="\ref phDal4Nfc_Config"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Register()",URL="\ref phDal4Nfc_Register"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Init()",URL="\ref phDal4Nfc_Init"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *--- [label="Perform read write operation"]; |
| *--- [label="DAL resources can be released during upper layer deinit sequence"]; |
| *UpperLayer=>phDal4Nfc [label="phDal4Nfc_Shutdown()",URL="\ref phDal4Nfc_Shutdown"]; |
| *UpperLayer<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *ClientApp=>phDal4Nfc [label="phDal4Nfc_ConfigRelease()",URL="\ref phDal4Nfc_ConfigRelease"]; |
| *ClientApp<<phDal4Nfc [label="NFCSTATUS_SUCCESS"]; |
| *\endmsc |
| */ |
| extern |
| NFCSTATUS |
| phDal4Nfc_ConfigRelease( |
| void *pHwRef); |
| |
| extern |
| NFCSTATUS |
| phDal4Nfc_Reset(long level); |
| |
| extern |
| NFCSTATUS |
| phDal4Nfc_Download(); |
| |
| /******************** Function declarations *************************/ |
| |
| #endif /* PHDALNFC_H */ |
| |
| /****************************************** END OF FILE ***************************************************/ |
| |