summaryrefslogtreecommitdiffstats
path: root/inc/phNfcHalTypes.h
diff options
context:
space:
mode:
authorNick Pelly <npelly@google.com>2010-09-23 12:47:58 -0700
committerNick Pelly <npelly@google.com>2010-09-23 13:53:18 -0700
commit5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a (patch)
tree190f9251c6db03d3550ec7f30b51a2561c01d9cf /inc/phNfcHalTypes.h
parent4ff7c86a2c706b150078274455406f1b04966e1a (diff)
downloadexternal_libnfc-nxp-5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a.zip
external_libnfc-nxp-5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a.tar.gz
external_libnfc-nxp-5d9927ba30ba449badb9f6df0fbeb4d6aedc6e2a.tar.bz2
Initial libnfc checkin
Source: Trusted_NFC_Device_Host_AA03.01e02_google.zip code drop (23-Sep-2010) Change-Id: Ie47f18423f949a8d3e0815d13f55c814312add24 Signed-off-by: Nick Pelly <npelly@google.com>
Diffstat (limited to 'inc/phNfcHalTypes.h')
-rw-r--r--inc/phNfcHalTypes.h1323
1 files changed, 1323 insertions, 0 deletions
diff --git a/inc/phNfcHalTypes.h b/inc/phNfcHalTypes.h
new file mode 100644
index 0000000..748f01b
--- /dev/null
+++ b/inc/phNfcHalTypes.h
@@ -0,0 +1,1323 @@
+/*
+ * 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 phNfcHalTypes.h
+ * \brief Structure declarations/type definitions belonging to the HAL subsystem.
+ *
+ * Project: NFC MW / HAL
+ *
+ * $Date: Thu Apr 8 17:11:39 2010 $
+ * $Author: ing04880 $
+ * $Revision: 1.106 $
+ * $Aliases: NFC_FRI1.1_WK1007_SDK,NFC_FRI1.1_WK1017_PREP1,NFC_FRI1.1_WK1017_R34_1,NFC_FRI1.1_WK1017_R34_2,NFC_FRI1.1_WK1023_R35_1 $
+ *
+ */
+
+
+#ifndef PHNFCHALTYPES_H /* */
+#define PHNFCHALTYPES_H /* */
+
+/**
+ * \name HAL Types
+ *
+ * File: \ref phNfcHalTypes.h
+ *
+ */
+
+/*@{*/
+#define PHNFCHALTYPES_FILEREVISION "$Revision: 1.106 $" /**< \ingroup grp_file_attributes */
+#define PHNFCHALTYPES_FILEALIASES "$Aliases: NFC_FRI1.1_WK1007_SDK,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 */
+/*@}*/
+
+#include <phNfcTypes.h>
+#include <phNfcCompId.h>
+#include <phNfcConfig.h>
+
+
+/** \ingroup grp_hal_common
+ *
+ * \if hal
+ * \brief Protocol Support Information
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The <em> Supported Protocols Structure </em> holds all protocol supported by the current NFC
+ * device.
+ *
+ * \note All members of this structure are output parameters [out].
+ *
+ */
+typedef phNfc_sSupProtocol_t phHal_sSupProtocol_t;
+
+
+/** \ingroup grp_hal_common
+ *
+ *
+ * \if hal
+ * \brief Information related to the NFC Device
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The <em> Device Information Structure </em> holds information
+ * related to the NFC IC read during initialization time.
+ * It allows the caller firware, hardware version, the model id,
+ * HCI verison supported and vendor name. Refer to the NFC Device
+ * User Manual on how to interpret each of the values. In addition
+ * it also contains capabilities of the NFC Device such as the
+ * protocols supported in Reader and emulation mode
+ *
+ */
+
+typedef phNfc_sDeviceCapabilities_t phHal_sDeviceCapabilities_t;
+
+
+/**
+ * \ingroup grp_hal_common
+ *
+ * \if hal
+ * \brief Hardware Reference - The Peripheral Representation
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The Hardware Reference structure is filled as part of the open function and
+ * contains information regarding connected peripheral NFC device. It also
+ * stores the refernce to the communication driver passed by the HAL client
+ * for usage during communication with the NFC Device
+ *
+ * \note The caller can consider this structure atomic, no interpretation is required
+ * for HAL operation.
+ *
+ * \sa phHal4Nfc_Open .
+ *
+ */
+
+/**
+ * \ingroup grp_hal_common
+ *
+ * \brief Hardware Reference - The Peripheral Representation
+ *
+ * The Hardware Reference structure is filled as part of the open function and
+ * contains information regarding connected peripheral NFC device. It also
+ * stores the refernce to the communication driver passed by the HAL client
+ * for usage during communication with the NFC Device
+ *
+ * \note The caller can consider this structure atomic, no interpretation is required
+ * for HAL operation.
+ *
+ */
+typedef struct phHal_sHwReference
+{
+ /**< Will be usable/valid after the Open function. */
+ void *p_board_driver;
+ /**< Session Identifier for the established session */
+ uint8_t session_id[SESSIONID_SIZE];
+ /**< SMX Connected TRUE/FALSE */
+ uint8_t smx_connected;
+ /**< UICC Connected TRUE/FALSE */
+ uint8_t uicc_connected;
+ /**< UICC Reader Mode is Active TRUE/FALSE */
+ uint8_t uicc_rdr_active;
+ /**< Device information. */
+ phNfc_sDeviceCapabilities_t device_info;
+ /**< Context of the HAL Layer */
+ void *hal_context;
+ /**< Context of the DAL Layer */
+ void *dal_context;
+} phHal_sHwReference_t;
+
+
+/** \ingroup grp_hal_common
+ *
+ * \if hal
+ * \brief Hardware configuration - Configuration Parameters for the NFC Device
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The parameters used to configure the device during the initialisation.
+ * This structure is used internally by the HAL implementation and is filled
+ * up based on various configuration parameters from the config file
+ * \note None.
+ *
+ */
+
+typedef struct phHal_sHwConfig
+{
+
+ uint8_t session_id[SESSIONID_SIZE]; /**< Session Identifier for
+ the established session */
+
+ uint8_t clk_req; /**< Clock Request Setting */
+
+ uint8_t input_clk; /**< Input Clock Setting */
+
+} phHal_sHwConfig_t;
+
+
+
+/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+/* This data structure is not used anymore and will be removed in subsequent
+ release */
+typedef struct phHal_sDepFlags
+{
+ unsigned int MetaChaining : 1;
+ unsigned int NADPresent : 1;
+} phHal_sDepFlags_t;
+
+/* This data structure is not used anymore and will be removed in subsequent
+ release */
+
+typedef struct phHal_sDepAdditionalInfo
+{
+ phHal_sDepFlags_t DepFlags;
+ uint8_t NAD;
+} phHal_sDepAdditionalInfo_t;
+
+
+/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+
+
+/** \ingroup grp_hal_common
+ *
+ * \if hal
+ * \brief Enumerated MIFARE Commands
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The <em> Mifare Command List Enumerator </em> lists all available Mifare native commands.
+ *
+ * \note None.
+ *
+ */
+
+typedef phNfc_eMifareCmdList_t phHal_eMifareCmdList_t;
+
+#define phHal_eMifareRaw phNfc_eMifareRaw
+#define phHal_eMifareAuthentA phNfc_eMifareAuthentA
+#define phHal_eMifareAuthentB phNfc_eMifareAuthentB
+#define phHal_eMifareRead16 phNfc_eMifareRead16
+#define phHal_eMifareRead phNfc_eMifareRead
+#define phHal_eMifareWrite16 phNfc_eMifareWrite16
+#define phHal_eMifareWrite4 phNfc_eMifareWrite4
+#define phHal_eMifareInc phNfc_eMifareInc
+#define phHal_eMifareDec phNfc_eMifareDec
+#define phHal_eMifareTransfer phNfc_eMifareTransfer
+#define phHal_eMifareRestore phNfc_eMifareRestore
+#define phHal_eMifareReadSector phNfc_eMifareReadSector
+#define phHal_eMifareWriteSector phNfc_eMifareWriteSector
+#define phHal_eMifareInvalidCmd phNfc_eMifareInvalidCmd
+
+
+/** \ingroup grp_hal_common
+ *
+ * The <em> T=Cl Command List Enumerator </em> lists all available T=Cl Commands.
+ *
+ * \note None.
+ *
+ */
+typedef phNfc_eIso14443_4_CmdList_t phHal_eIso14443_4_CmdList_t;
+
+#define phHal_eIso14443_4_Raw phNfc_eIso14443_4_Raw
+
+
+/** \ingroup grp_hal_common
+ *
+ * The <em> NFCIP1 Command List Enumerator </em> lists all available NFCIP1 Commands.
+ *
+ * \note None.
+ *
+ */
+typedef phNfc_eNfcIP1CmdList_t phHal_eNfcIP1CmdList_t;
+
+#define phHal_eNfcIP1_Raw phNfc_eNfcIP1_Raw
+
+
+/** \ingroup grp_hal_common
+ *
+ * The <em> ISO15693 Command List Enumerator </em> lists all available ISO15693 Commands.
+ *
+ * \note None.
+ *
+ */
+
+typedef phNfc_eIso15693_CmdList_t phHal_eIso15693_CmdList_t;
+
+#if 0
+#define phHal_eIso15693_Raw phNfc_eIso15693_Raw
+#endif
+#define phHal_eIso15693_Cmd phNfc_eIso15693_Cmd
+#define phHal_eIso15693_Invalid phNfc_eIso15693_Invalid
+
+/** \ingroup grp_hal_common
+ *
+ * The <em> Felica Command List Enumerator </em> lists all available Felica Commands.
+ *
+ * \note None.
+ *
+ */
+
+typedef enum phHal_eFelicaCmdList
+{
+ phHal_eFelica_Raw = 0xF0U, /**< Felica Raw command:\n
+ - This command sends the data buffer directly
+ to the remote device */
+ phHal_eFelica_Check = 0x00, /**< Felica Check command:\n
+ - This command checks the data from the Felica
+ remote device */
+ phHal_eFelica_Update = 0x01, /**< Felica Update command:\n
+ - This command updates the data onto the Felica
+ remote device */
+ phHal_eFelica_Invalid = 0xFFU /**< Invalid Command */
+} phHal_eFelicaCmdList_t;
+
+
+typedef enum phHal_eJewelCmdList
+{
+ phHal_eJewel_Raw = 0x00U, /**< Jewel command:\n
+ - This command sends the data buffer directly
+ to the remote device */
+ phHal_eJewel_Invalid = 0xFFU /**< Invalid jewel command */
+}phHal_eJewelCmdList_t;
+
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Remote Device Reader A RF Gate Information Container
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> Reader A structure </em> includes the available information
+* related to the discovered ISO14443A remote device. This information
+* is updated for every device discovery.
+* \note None.
+*
+*/
+typedef phNfc_sIso14443AInfo_t phHal_sIso14443AInfo_t;
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Remote Device Reader B RF Gate Information Container
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> Reader B structure </em> includes the available information
+* related to the discovered ISO14443B remote device. This information
+* is updated for every device discovery.
+* \note None.
+*
+*/
+
+typedef phNfc_sIso14443BInfo_t phHal_sIso14443BInfo_t;
+
+typedef phNfc_sIso14443BPrimeInfo_t phHal_sIso14443BPrimeInfo;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Remote Device Jewel Reader RF Gate Information Container
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> Jewel Reader structure </em> includes the available information
+* related to the discovered Jewel remote device. This information
+* is updated for every device discovery.
+* \note None.
+*
+*/
+
+
+typedef phNfc_sJewelInfo_t phHal_sJewelInfo_t;
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Remote Device Felica Reader RF Gate Information Container
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> Felica Reader structure </em> includes the available information
+* related to the discovered Felica remote device. This information
+* is updated for every device discovery.
+* \note None.
+*
+*/
+
+typedef phNfc_sFelicaInfo_t phHal_sFelicaInfo_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Remote Device Reader 15693 RF Gate Information Container
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> Reader A structure </em> includes the available information
+* related to the discovered ISO15693 remote device. This information
+* is updated for every device discovery.
+* \note None.
+*
+*/
+
+typedef phNfc_sIso15693Info_t phHal_sIso15693Info_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief NFC Data Rate Supported between the Reader and the Target
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHalNfc_eDataRate enum </em> lists all the Data Rate
+* values to be used to determine the rate at which the data is transmitted
+* to the target.
+*
+* \note None.
+*/
+
+
+typedef phNfc_eDataRate_t phHalNfc_eDataRate_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief NFCIP1 Gate Information Container
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> NFCIP1 structure </em> includes the available information
+* related to the discovered NFCIP1 remote device. This information
+* is updated for every device discovery.
+* \note None.
+*
+*/
+
+typedef phNfc_sNfcIPInfo_t phHal_sNfcIPInfo_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Remote Device Specific Information Container
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> Remote Device Information Union </em> includes the available Remote Device Information
+* structures. Following the device detected, the corresponding data structure is used.
+*
+* \note None.
+*
+*/
+
+typedef phNfc_uRemoteDevInfo_t phHal_uRemoteDevInfo_t;
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief RF Device Type Listing
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> RF Device Type List </em> is used to identify the type of
+* remote device that is discovered/connected. There seperate
+* types to identify a Remote Reader (denoted by _PCD) and
+* Remote Tag (denoted by _PICC)
+* \note None.
+*
+*/
+
+typedef phNfc_eRFDevType_t phHal_eRFDevType_t;
+
+#define phHal_eUnknown_DevType phNfc_eUnknown_DevType
+
+ /* Specific PCD Devices */
+#define phHal_eISO14443_A_PCD phNfc_eISO14443_A_PCD
+#define phHal_eISO14443_B_PCD phNfc_eISO14443_B_PCD
+#define phHal_eISO14443_BPrime_PCD phNfc_eISO14443_BPrime_PCD
+#define phHal_eFelica_PCD phNfc_eFelica_PCD
+#define phHal_eJewel_PCD phNfc_eJewel_PCD
+#define phHal_eISO15693_PCD phNfc_eISO15693_PCD
+ /* Generic PCD Type */
+#define phHal_ePCD_DevType phNfc_ePCD_DevType
+
+ /* Generic PICC Type */
+#define phHal_ePICC_DevType phNfc_ePICC_DevType
+ /* Specific PICC Devices */
+#define phHal_eISO14443_A_PICC phNfc_eISO14443_A_PICC
+#define phHal_eISO14443_4A_PICC phNfc_eISO14443_4A_PICC
+#define phHal_eISO14443_3A_PICC phNfc_eISO14443_3A_PICC
+#define phHal_eMifare_PICC phNfc_eMifare_PICC
+#define phHal_eISO14443_B_PICC phNfc_eISO14443_B_PICC
+#define phHal_eISO14443_4B_PICC phNfc_eISO14443_4B_PICC
+#define phHal_eISO14443_BPrime_PICC phNfc_eISO14443_BPrime_PICC
+#define phHal_eFelica_PICC phNfc_eFelica_PICC
+#define phHal_eJewel_PICC phNfc_eJewel_PICC
+#define phHal_eISO15693_PICC phNfc_eISO15693_PICC
+
+ /* NFC-IP1 Device Types */
+#define phHal_eNfcIP1_Target phNfc_eNfcIP1_Target
+#define phHal_eNfcIP1_Initiator phNfc_eNfcIP1_Initiator
+
+ /* Other Sources */
+#define phHal_eInvalid_DevType phNfc_eInvalid_DevType
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Remote Device Type Listing
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> Remote Device Type List </em> is used to identify the type of
+* remote device that is discovered/connected
+* \note This is same as RF Device Type List.
+*
+*/
+typedef phNfc_eRemDevType_t phHal_eRemDevType_t;
+
+/** \ingroup grp_hal_common
+ *
+ *
+ * \if hal
+ * \brief Common Command Attribute
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The <em> Hal Command Union </em> includes each available type of Commands.
+ *
+ * \note None.
+ *
+ */
+
+typedef phNfc_uCmdList_t phHal_uCmdList_t;
+
+
+/** \ingroup grp_hal_nfci
+ *
+ * \if hal
+ * \brief Remote Device Information Structure
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The <em> Remote Device Information Structure </em> holds information about one single Remote
+ * Device detected by the polling function .\n
+ * It lists parameters common to all supported remote devices.
+ *
+ * \note
+ *
+ * \if hal
+ * \sa \ref phHal4Nfc_ConfigureDiscovery and \ref phHal4Nfc_Connect
+ * \else
+ * \sa
+ * \endif
+ *
+ */
+
+typedef phNfc_sRemoteDevInformation_t phHal_sRemoteDevInformation_t;
+
+
+
+/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+/* This data structure is not used anymore and will be removed in subsequent
+ release */
+
+typedef struct phHal_sDevInputParam
+{
+ uint8_t FelicaPollPayload[5];
+
+
+ uint8_t NfcPollPayload[5];
+
+
+ uint8_t NFCIDAuto;
+
+
+ uint8_t NFCID3i[PHHAL_NFCID_LENGTH];
+
+
+
+ uint8_t DIDiUsed;
+
+ uint8_t CIDiUsed;
+
+ uint8_t NfcNADiUsed;
+
+ /*+ MantisId : 31 - JP - 09-01-2006 */
+ /*uint8_t TClNADiUsed; */
+
+ /*- MantisId : 31 - JP - 09-01-2006 */
+ uint8_t GeneralByte[48];
+
+
+ uint8_t GeneralByteLength;
+
+
+ uint8_t ISO14443_4B_AFI;
+
+} phHal_sDevInputParam_t;
+
+
+
+
+/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
+
+
+/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
+/* TARGET STRUCTURES */
+
+
+/** \ingroup grp_hal_common
+ *
+ * \if hal
+ * \brief Transceive Information Data Structure for sending commands/response
+ * to the remote device
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The <em> Transceive Information Data Structure </em> is used to pass the
+ * Command, Address (only required for MIFARE) and the send and receive data
+ * data structure (buffer and length) for communication with remote device
+ *
+ *
+ */
+
+typedef phNfc_sTransceiveInfo_t phHal_sTransceiveInfo_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Input information for the Type A tags
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sIso14443ACfg structure </em> holds the information
+* required for the NFC device to be used during ISO14443A target discovery
+*
+* \note None.
+*/
+typedef struct phHal_sIso14443ACfg
+{
+ uint8_t Auto_Activation; /**< Enable Auto Activation for
+ Technology A \n
+ If set to 0, the activation procedure will stop
+ after Select (SAK has been received).
+ The host could evaluate SAK value and then decide:
+ - to start communicating with the remote card
+ using proprietary commands (see NXP_MIFARE_RAW
+ and NXP_MIFARE_CMD)
+ or
+ - to activate the remote card up to ISO14443-4
+ level (RATS and PPS) using
+ CONTINUE ACTIVATION command
+ If set to 1, activation follows the flow described in
+ ETSI HCI specification (restrict detection to
+ ISO14443-4 compliant cards).
+ */
+}phHal_sIso14443ACfg_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Input information for the Type B tags
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sIso14443BCfg structure </em> holds the information
+* required for the NFC device to be used during ISO14443B target discovery
+*
+* \note None.
+*/
+typedef struct phHal_sIso14443BCfg
+{
+ uint8_t AppFamily_ID; /**< Application Family Identifier for
+ Technology B, 0x00 means all application */
+}phHal_sIso14443BCfg_t;
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Input information for the Felica tags
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sFelicaCfg_t structure </em> holds the information
+* required for the NFC device to be used during Felica target discovery
+*
+* \note None.
+*/
+
+typedef struct phHal_sFelicaCfg
+{
+ uint8_t SystemCode[PHHAL_FEL_SYS_CODE_LEN]; /**< System code for Felica tags */
+
+}phHal_sFelicaCfg_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief Poll Device Information for conifiguring the discovery wheel
+ Reader and Card Emulation Phases
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sPollDevInfo_t enum </em> is used to enable/disable
+* phases of the discovery wheel related to specific reader types and
+* card emulation phase
+* \note Enabling specific Reader technology when NFCIP1 speed is set in the
+* phNfc_sADD_Cfg_t is implicitly done in HAL. Use this structure to only
+* enable/disable Card Reader Functionality
+*/
+typedef phNfc_sPollDevInfo_t phHal_sPollDevInfo_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Identifies Type of Host
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This enumeration is used to identify the type of the host providing the
+* information or the notification to the Terminal host.
+* \note None.
+*/
+
+typedef enum phHal_HostType {
+ /*
+ * This type identifies the host controller
+ * in the NFC device
+ */
+ phHal_eHostController = 0x00U,
+ /*
+ * This type identifies the Host Device
+ * controlling the NFC device.
+ */
+ phHal_eTerminalHost = 0x01U,
+ /*
+ * This type identifies the uicc host
+ * connnected to the NFC device
+ */
+ phHal_eUICCHost = 0x02U,
+ /* Host type is unknown */
+ phHal_eUnknownHost = 0xFFU
+}phHal_HostType_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief P2P speed for the Initiator
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_eP2PMode enum </em> lists all the NFCIP1 speeds
+* to be used for configuring the NFCIP1 discovery
+*
+* \note None.
+*/
+
+#define phHal_eDefaultP2PMode phNfc_eDefaultP2PMode
+#define phHal_ePassive106 phNfc_ePassive106
+#define phHal_ePassive212 phNfc_ePassive212
+#define phHal_ePassive424 phNfc_ePassive424
+#define phHal_eActive phNfc_eActive
+#define phHal_eP2P_ALL phNfc_eP2P_ALL
+#define phHal_eInvalidP2PMode phNfc_eInvalidP2PMode
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Identities the type of Notification
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This enumeration is used to specify the type of notification notified
+* to the upper layer. This classifies the notification into two types
+* one for the discovery notifications and the other for all the remaining
+* event notifications
+* \note None.
+*/
+
+
+typedef phNfc_eNotificationType_t phHal_eNotificationType_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Identifies the type of event notification
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This enumeration is used to identify the type of the event notified
+* to the Terminal host.
+* \note None.
+*/
+
+typedef enum phHal_Event {
+
+
+ /* Transaction Events */
+ NFC_EVT_END_OF_TRANSACTION = 0x11U ,
+ NFC_EVT_TRANSACTION = 0x12U ,
+ NFC_EVT_START_OF_TRANSACTION = 0x20U ,
+
+ /* Field Events */
+ NFC_EVT_FIELD_ON = 0x31U,
+ NFC_EVT_FIELD_OFF = 0x34U,
+
+ /* Card/Target Activation Events */
+ NFC_EVT_ACTIVATED = 0x33U,
+ NFC_EVT_DEACTIVATED = 0x32U,
+
+ NFC_EVT_PROTECTED = 0x24U ,
+
+ /* Reader Phases configuration request by UICC */
+ NFC_UICC_RDPHASES_ACTIVATE_REQ = 0x43U,
+ NFC_UICC_RDPHASES_DEACTIVATE_REQ = 0x44U,
+
+ /* Connectivity and Triggering Events - Future Use */
+ NFC_EVT_CONNECTIVITY = 0x10U ,
+ NFC_EVT_OPERATION_ENDED = 0x13U ,
+
+ /* NXP Specific System Information Events */
+ NFC_INFO_TXLDO_OVERCUR = 0x71U,
+ NFC_INFO_MEM_VIOLATION = 0x73U,
+ NFC_INFO_TEMP_OVERHEAT = 0x74U
+
+}phHal_Event_t;
+
+typedef phNfc_sUiccInfo_t phHal_sUiccInfo_t;
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Event notification Information
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This structure provides the information about the event notified
+* to the terminal host.
+* \note None.
+*/
+
+typedef struct phHal_sEventInfo
+{
+ /* Type of the host issuing the event */
+ phHal_HostType_t eventHost;
+ /* Type of the source issuing the event */
+ phHal_eRFDevType_t eventSource;
+ /* Type of the source issuing the event */
+ phHal_Event_t eventType;
+ union uEventInfo
+ {
+ /* Parameter information Information is obtained if the eventType is
+ * NFC_EVT_TRANSACTION for UICC.
+ */
+ phHal_sUiccInfo_t uicc_info;
+ /* AID Information is obtained if the eventType is
+ * NFC_EVT_TRANSACTION.
+ */
+ phNfc_sData_t aid;
+ /* Overheat Status Information is obtained if the eventType is
+ * NFC_INFO_TEMP_OVERHEAT.
+ */
+ uint8_t overheat_status;
+ /* rd_phases Information is obtained if the eventType is
+ * NFC_UICC_RDPHASES_ACTIVATE_REQ.
+ */
+ uint8_t rd_phases;
+ /* Remote Device Information is obtained if the eventType is
+ * NFC_EVT_ACTIVATED.
+ */
+ phHal_sRemoteDevInformation_t *pRemoteDevInfo;
+ }eventInfo;
+}phHal_sEventInfo_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for the Host/Uicc Emulation Support
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sEmuSupport structure </em> holds the type
+* of the target emulation supported.
+*
+* \note None.
+*/
+
+typedef struct phHal_sEmuSupport
+{
+ unsigned int TypeA:1;
+ unsigned int TypeB:1;
+ unsigned int TypeBPrime:1;
+ unsigned int TypeFelica:1;
+ unsigned int TypeMifare:1;
+ unsigned int TypeNfcIP1:1;
+ unsigned int RFU:2;
+
+}phHal_sEmuSupport_t;
+
+
+/** \ingroup grp_hal_nfci
+*
+* \if hal
+* \brief P2P Information for the Initiator
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sNfcIPCfg </em> holds the P2P related information
+* use by the NFC Device during P2P Discovery and connection
+*
+* \note None.
+*/
+
+typedef phNfc_sNfcIPCfg_t phHal_sNfcIPCfg_t;
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Enumeration used to choose which type of parameters
+* are to be configured
+* \else
+* \brief HAL-Specific
+* \endif
+*
+*
+* \note None.
+*/
+typedef enum phHal_eConfigType
+{
+ NFC_INVALID_CONFIG = 0x00U, /**< Invalid Configuration */
+ NFC_RF_READER_CONFIG, /**< Reader Parmaeters */
+ NFC_P2P_CONFIG, /**< NFCIP1 Parameters */
+ NFC_SE_PROTECTION_CONFIG, /**< Secure Element
+ Protection Cofiguration */
+ NFC_EMULATION_CONFIG /**< Emulation Parameters */
+}phHal_eConfigType_t;
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Discovery Configuration Mode
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This enumeration is used to choose the Discovery Configuration
+* Mode :- Configure and Start, Stop or Start with last set
+* configuration
+* \note None.
+*/
+
+typedef phNfc_eDiscoveryConfigMode_t phHal_eDiscoveryConfigMode_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Target or Tag Release Mode
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This enumeration defines various modes of releasing an acquired target
+* or tag.
+* \note None.
+*/
+typedef phNfc_eReleaseType_t phHal_eReleaseType_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Configuration of specific Emulation Feature
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This enumeration is used to choose configuration for a specific
+* emulation feature.
+* \note None.
+*/
+
+typedef enum phHal_eEmulationType
+{
+ NFC_UNKNOWN_EMULATION = 0x00U, /**< Invalid Configuration */
+ NFC_HOST_CE_A_EMULATION = 0x01U, /**< Configure parameters for Type A
+ card emulation from host */
+ NFC_HOST_CE_B_EMULATION = 0x02U, /**< Configure parameters for Type B
+ card emulation from host */
+ NFC_B_PRIME_EMULATION = 0x03U, /**< Configure parameters for Type B'
+ card emulation from host */
+ NFC_FELICA_EMULATION = 0x04U, /**< Configure parameters for Type F
+ card emulation from host */
+ NFC_MIFARE_EMULATION = 0x06U, /**< Configure parameters for MIFARE
+ card emulation - For Future Use */
+ NFC_SMARTMX_EMULATION = 0x07U, /**< Configure parameters for SmartMX
+ */
+ NFC_UICC_EMULATION = 0x08U /**< Configure parameters for UICC
+ emulation */
+}phHal_eEmulationType_t;
+
+#if 0
+/** \ingroup grp_hal_nfct
+ *
+ * \if hal
+ * \brief Information for Target Mode Start-Up
+ * \else
+ * \brief HAL-Specific
+ * \endif
+ *
+ * The <em> Target Information Structure </em> required to start Target mode.
+ * It contains all the information for the Target mode.
+ *
+ * \note None.
+ *
+ */
+
+typedef struct phHal_sTargetInfo
+{
+ uint8_t enableEmulation;
+ phHal_sNfcIPCfg_t targetConfig;
+} phHal_sTargetInfo_t;
+#endif
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Mode of operation for SmartMX
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This enumeration is used to choose the mode of operation for the SmartMx Module.
+* Default static configuration at initialization time.
+* \note None.
+*/
+
+typedef enum phHal_eSmartMX_Mode{
+ eSmartMx_Wired = 0x00U, /* SmartMX is in Wired Mode */
+ eSmartMx_Default, /* SmartMX is in Default Configuration Mode */
+ eSmartMx_Virtual, /* SmartMx in the Virutal Mode */
+ eSmartMx_Off /* SmartMx Feature is Switched off */
+} phHal_eSmartMX_Mode_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Mode of operation for SWP
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* This enumeration is used to choose the mode of operation for the SWP Link
+* for UICC Module. Default static configuration at initialization time.
+* \note None.
+*/
+
+typedef enum phHal_eSWP_Mode{
+ eSWP_Switch_Off = 0x00U, /* SWP Link is Switched off */
+ eSWP_Switch_Default, /* SWP is in Default Configuration Mode */
+ eSWP_Switch_On /* SWP Link is Switched on */
+} phHal_eSWP_Mode_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for the Configuring the SmartMX
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sSmartMX_Cfg structure </em> holds the information
+* to configure the SmartMX Module in the NFC Device.
+*
+* \note None.
+*/
+
+
+typedef struct phHal_sSmartMX_Cfg
+{
+ uint8_t enableEmulation;
+ uint8_t lowPowerMode;
+ phHal_eSmartMX_Mode_t smxMode;
+}phHal_sSmartMX_Cfg_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for the Configuring the UICC
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sUiccEmuCfg structure </em> holds the information
+* to configure the UICC Host.
+*
+* \note None.
+*/
+
+
+typedef struct phHal_sUiccEmuCfg
+{
+ uint8_t enableUicc;
+ uint8_t uiccEmuSupport;
+ uint8_t uiccReaderSupport;
+ uint8_t lowPowerMode;
+ /* TODO: This will be updated later */
+}phHal_sUiccEmuCfg_t;
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for the Configuring the Type A Host Emulation Feature
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sHostEmuCfg_A structure </em> holds the information
+* to configure the Host Emulation for Type A.
+*
+* \note None.
+*/
+
+typedef struct phHal_sHostEmuCfg_A
+{
+ uint8_t enableEmulation;
+ phNfc_sIso14443AInfo_t hostEmuCfgInfo;
+ uint8_t enableCID;
+}phHal_sHostEmuCfg_A_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for the Configuring the Type B Host Emulation Feature
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sHostEmuCfg_B structure </em> holds the information
+* to configure the Host Emulation for Type B.
+*
+* \note None.
+*/
+
+typedef struct phHal_sHostEmuCfg_B
+{
+ uint8_t enableEmulation;
+ phNfc_sIso14443BInfo_t hostEmuCfgInfo;
+}phHal_sHostEmuCfg_B_t;
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for the Configuring the Felica Host Emulation Feature
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sHostEmuCfg_F structure </em> holds the information
+* to configure the Felica Host Emulation.
+*
+* \note None.
+*/
+
+
+typedef struct phHal_sHostEmuCfg_F
+{
+ uint8_t enableEmulation;
+}phHal_sHostEmuCfg_F_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for the Configuring the Emulation
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sEmulationCfg structure </em> holds the information
+* required for the device to act as a Tag or NFCIP1 Target.
+*
+* \note phHal_sHostEmuCfg_F_t Type F emulation is not presently supported
+* is reserved for future use.
+*/
+
+typedef struct phHal_sEmulationCfg
+{
+ phHal_HostType_t hostType;
+ phHal_eEmulationType_t emuType;
+ union phHal_uEmuConfig
+ {
+ phHal_sSmartMX_Cfg_t smartMxCfg;
+ phHal_sHostEmuCfg_A_t hostEmuCfg_A;
+ phHal_sHostEmuCfg_B_t hostEmuCfg_B;
+ phHal_sHostEmuCfg_F_t hostEmuCfg_F;
+ phHal_sUiccEmuCfg_t uiccEmuCfg;
+ }config;
+}phHal_sEmulationCfg_t;
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for the Configuring the Reader parameters
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sReaderCfg structure </em> holds the information
+* to configure the Reader A or Reader B parameters.
+*
+* \note None.
+*/
+
+typedef struct phHal_sReaderCfg
+{
+ phHal_eRFDevType_t readerType;
+ union phHal_uReaderCfg
+ {
+ phHal_sIso14443ACfg_t Iso14443ACfg;
+ phHal_sIso14443BCfg_t Iso14443BCfg;
+ }config;
+}phHal_sReaderCfg_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Information for Configuring the Protected Mode for
+* the Secure Elements.
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_sSEProtectionCfg structure </em> holds the
+* information to configure the Secure Element Protection configuration.
+*
+* \note None.
+*/
+
+typedef struct phHal_sSEProtectionCfg
+{
+ uint8_t mode;
+}phHal_sSEProtectionCfg_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Poll configuration structure
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> Poll configuration structure </em> holds information about the
+* enabling the the type of discovery required by the application. This
+* structure is the input parameter for the discovery call
+*
+* \note All members of this structure are input parameters [out].
+*
+* \if hal
+* \sa \ref phHal4Nfc_Connect, \ref phHal4Nfc_ConfigParameters,
+* \ref phHal_eP2PMode_t and \ref phHal4Nfc_Disconnect.
+* \endif
+*
+*/
+
+typedef phNfc_sADD_Cfg_t phHal_sADD_Cfg_t;
+
+
+/** \ingroup grp_hal_common
+*
+* \if hal
+* \brief Configuration information.
+* \else
+* \brief HAL-Specific
+* \endif
+*
+* The <em> \ref phHal_uConfig structure </em> holds the information
+* required for Configuring the Device.
+*
+* \note None.
+*/
+
+
+typedef union phHal_uConfig
+{
+ phHal_sEmulationCfg_t emuConfig;
+ phHal_sNfcIPCfg_t nfcIPConfig; /**< Gives the information about
+ * the General Bytes for NFC-IP
+ * Communication.
+ */
+ phHal_sReaderCfg_t readerConfig;
+ phHal_sSEProtectionCfg_t protectionConfig;
+}phHal_uConfig_t;
+
+
+#endif
+
+/* EOF */