NXP_PN512_NFCReaderLibrary/intfs/phpalI18092mPI.h

510 lines
23 KiB
C

/*
* Copyright (c), NXP Semiconductors Gratkorn / Austria
*
* (C)NXP Semiconductors
* All rights are reserved. Reproduction in whole or in part is
* prohibited without the written consent of the copyright owner.
* NXP reserves the right to make changes without notice at any time.
* NXP makes no warranty, expressed, implied or statutory, including but
* not limited to any implied warranty of merchantability or fitness for any
*particular purpose, or that the use will not infringe any third party patent,
* copyright or trademark. NXP must not be liable for any loss or damage
* arising from its use.
*/
/** \file
* Generic ISO18092 passive initiator mode Component of Reader Library Framework.
* $Author: Purnank G (ing05193) $
* $Revision: 5076 $ (v4.040.05.011646)
* $Date: 2016-06-13 17:29:09 +0530 (Mon, 13 Jun 2016) $
*
* History:
* CEn: Generated 07. September 2010
*/
#ifndef PHPALI18092MPI_H
#define PHPALI18092MPI_H
#include <ph_Status.h>
#include <phhalHw.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifdef NXPBUILD__PHPAL_I18092MPI_SW
/** \defgroup phpalI18092mPI_Sw Component : Software
* @{
*/
#define PHPAL_I18092MPI_SW_ID 0x01U /**< ID for Software ISO18092 layer. */
#define PHPAL_I18092MPI_NFCID3_LENGTH 0x0AU /**< Length of NFCID3. */
/**
* \brief ISO18092 mode passive initiator parameter structure
*/
typedef struct
{
uint16_t wId; /**< Layer ID for this component, NEVER MODIFY! */
uint16_t wLastTxLen; /**< Last DEP Send length. */
void * pHalDataParams; /**< Pointer to the parameter structure of the underlying layer. */
uint8_t bNfcIdValid; /**< Whether current NfcID is valid or not. */
uint8_t aNfcid3i[PHPAL_I18092MPI_NFCID3_LENGTH]; /**< Array holding 10 bytes long NFCID3. */
uint8_t bStateNow; /**< Current Exchange-State. */
uint8_t bDid; /**< Device Identifier; '0' to disable usage else 1-14. */
uint8_t bNadEnabled; /**< Node Address Enabler; Unequal '0' if enabled. */
uint8_t bNad; /**< Node Address; Ignored if bNadEnabled is equal '0'. */
uint8_t bWt; /**< Waiting Time; 0-14 */
uint8_t bFsl; /**< Frame Length Byte; 0-3 */
uint8_t bPni; /**< Current Packet Number (Packet number information); 0-3 */
uint8_t bDsi; /**< Divisor Send (target to initiator) Integer; 0-2 */
uint8_t bDri; /**< Divisor Receive (initiator to target) Integer; 0-2 */
uint8_t bLri; /**< Length reduction (initiator). */
uint8_t bLrt; /**< Length reduction (target). */
uint8_t bMaxRetryCount; /**< Maximum retry count for retransmissions. */
uint8_t bAtnDisabled; /**< ATN Disabler (i.e. '0' if ATN enabled). */
uint8_t bActiveMode; /**< Flag indicates whether active mode is activated or not. */
} phpalI18092mPI_Sw_DataParams_t;
/**
* \brief Initialize this layer.
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
*/
phStatus_t phpalI18092mPI_Sw_Init(
phpalI18092mPI_Sw_DataParams_t * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint16_t wSizeOfDataParams, /**< [In] Specifies the size of the data parameter structure. */
void * pHalDataParams /**< [In] Pointer to the parameter structure of the underlying layer. */
);
/** @} */
#endif /* NXPBUILD__PHPAL_I18092MPI_SW */
#ifdef NXPBUILD__PHPAL_I18092MPI
/** \addtogroup ph_Error
* phpalI18092 Custom Errors
* @{
*/
/** \name phpalI18092mPI Error Codes
*/
/*@{*/
#define PHPAL_I18092MPI_ERR_RECOVERY_FAILED (PH_ERR_CUSTOM_BEGIN+0) /**< ISO18092 error recovery failed. */
/*@}*/
/** @} */
/** \defgroup phpalI18092mPI ISO/IEC 18092 Mode Initiator
* \brief These Components implement the ISO/IEC ISO18092 contact-less protocol. Supported mode is passive initiator, i.e.
* using these components it is possible to communicate with a passive target in peer to peer mode.
* @{
*/
#define PHPAL_I18092MPI_DID_MAX 0x0EU /**< The last valid DID. */
#define PHPAL_I18092MPI_WT_MAX 0x0EU /**< The maximum allowed WT value, NFCForum-TS-DigitalProtocol-1.0 section 14.11. */
#define PHPAL_I18092MPI_FSL_MAX 0x03U /**< The maximum allowed FSL value. */
#define PHPAL_I18092MPI_PNI_MAX 0x03U /**< The maximum allowed PNI value. */
/**
* \name ISO18092 Mode Passive Initiator Parameters
*/
/*@{*/
/**
* \brief Set / Get packet number.
*/
#define PHPAL_I18092MPI_CONFIG_PACKETNO 0x0000U
/**
* \brief Set / Get Device Identifier.
*/
#define PHPAL_I18092MPI_CONFIG_DID 0x0001U
/**
* \brief Set / Get Node Address.
*
* \c wValue is parsed as follows:
* \verbatim
* NadEnabled = (wValue & 0xFF00) ? 1 : 0;
* Nad = (wValue & 0x00FF);
* \endverbatim
*/
#define PHPAL_I18092MPI_CONFIG_NAD 0x0002U
/**
* \brief Set / Get waiting time.
*/
#define PHPAL_I18092MPI_CONFIG_WT 0x0003U
/**
* \brief Get frame length (FSL) value.
* Indicates either Lri or Lrt value whichever is lesser in case PSL is not exchanged.
* If PSL is exchanged then the agreed FSL value is returned.
*/
#define PHPAL_I18092MPI_CONFIG_FSL 0x0004U
/**
* \brief Set / Get maximum retry count.
*/
#define PHPAL_I18092MPI_CONFIG_MAXRETRYCOUNT 0x0005U
/**
* \brief Set / Get ATN configuration.
*/
#define PHPAL_I18092MPI_CONFIG_ATN 0x0006U
/**
* \brief Get the status if active communication mode is #PH_ON / #PH_OFF.\n
*/
#define PHPAL_I18092MPI_CONFIG_ACTIVEMODE 0x0007U
/*@}*/
/**
* \name Values for #phpalI18092mPI_Deselect \c bDeselectCommand parameter.
*/
/*@{*/
#define PHPAL_I18092MPI_DESELECT_DSL 0x08U /**< DSL is sent for deselection of target. */
#define PHPAL_I18092MPI_DESELECT_RLS 0x0AU /**< RLS is sent for Release of target. */
/*@}*/
/**
* \name DRI/DSI (BRI/BSI) Values
*/
/*@{*/
#define PHPAL_I18092MPI_DATARATE_106 0x00U /**< DRI/DSI value for 106 kBit/s. */
#define PHPAL_I18092MPI_DATARATE_212 0x01U /**< DRI/DSI value for 212 kBit/s. */
#define PHPAL_I18092MPI_DATARATE_424 0x02U /**< DRI/DSI value for 424 kBit/s. */
/*@}*/
/**
* \name FSL/LRI Values
*/
/*@{*/
#define PHPAL_I18092MPI_FRAMESIZE_64 0x00U /**< FSL value for max. framesize of 64 Bytes. */
#define PHPAL_I18092MPI_FRAMESIZE_128 0x01U /**< FSL value for max. framesize of 128 Bytes. */
#define PHPAL_I18092MPI_FRAMESIZE_192 0x02U /**< FSL value for max. framesize of 192 Bytes. */
#define PHPAL_I18092MPI_FRAMESIZE_254 0x03U /**< FSL value for max. framesize of 254 Bytes. */
/*@}*/
/**
* \name Maximum Values
*/
/*@{*/
#define PHPAL_I18092MPI_MAX_GI_LENGTH 48U /**< Maximum length of Gi data. */
/*@}*/
#ifdef NXPRDLIB_REM_GEN_INTFS
#include "../comps/phpalI18092mPI/src/Sw/phpalI18092mPI_Sw.h"
#define phpalI18092mPI_ResetProtocol( pDataParams) \
phpalI18092mPI_Sw_ResetProtocol((phpalI18092mPI_Sw_DataParams_t *)pDataParams)
#define phpalI18092mPI_Atr( pDataParams, pNfcid3i, bDid, bLri, bNadEnable, bNad, pGi, bGiLength, pAtrRes, pAtrResLength) \
phpalI18092mPI_Sw_Atr((phpalI18092mPI_Sw_DataParams_t *)pDataParams, pNfcid3i,bDid, bLri, bNadEnable, bNad, \
pGi, bGiLength, pAtrRes,pAtrResLength)
#define phpalI18092mPI_Psl( pDataParams, bDsi, bDri, bFsl) \
phpalI18092mPI_Sw_Psl((phpalI18092mPI_Sw_DataParams_t *)pDataParams, bDsi, bDri, bFsl)
#define phpalI18092mPI_ActivateCard( pDataParams, pNfcid3i, bDid, bNadEnable, bNad, bDsi, \
bDri, bFsl, pGi, bGiLength, pAtrRes, pAtrResLength) \
phpalI18092mPI_Sw_ActivateCard( (phpalI18092mPI_Sw_DataParams_t *)pDataParams, pNfcid3i, bDid,bNadEnable, bNad, \
bDsi, bDri, bFsl, pGi, bGiLength, pAtrRes, pAtrResLength)
#define phpalI18092mPI_Deselect( pDataParams, bDeselectCommand) \
phpalI18092mPI_Sw_Deselect((phpalI18092mPI_Sw_DataParams_t *)pDataParams, bDeselectCommand)
#define phpalI18092mPI_PresCheck( pDataParams) \
phpalI18092mPI_Sw_PresCheck((phpalI18092mPI_Sw_DataParams_t *)pDataParams)
#define phpalI18092mPI_Exchange( pDataParams, wOption, pTxBuffer, wTxLength, ppRxBuffer, pRxLength) \
phpalI18092mPI_Sw_Exchange((phpalI18092mPI_Sw_DataParams_t *)pDataParams, wOption, pTxBuffer, wTxLength, ppRxBuffer, pRxLength);
#define phpalI18092mPI_Transmit( pDataParams, wOption, pTxBuffer, wTxLength) \
phpalI18092mPI_Sw_Transmit((phpalI18092mPI_Sw_DataParams_t *)pDataParams, wOption, pTxBuffer, wTxLength);
#define phpalI18092mPI_Receive( pDataParams, wOption, ppRxBuffer, pRxLength) \
phpalI18092mPI_Sw_Receive((phpalI18092mPI_Sw_DataParams_t *)pDataParams, wOption, ppRxBuffer, pRxLength);
#define phpalI18092mPI_SetConfig( pDataParams, wConfig, wValue) \
phpalI18092mPI_Sw_SetConfig((phpalI18092mPI_Sw_DataParams_t *)pDataParams, wConfig, wValue)
#define phpalI18092mPI_GetConfig( pDataParams, wConfig, pValue) \
phpalI18092mPI_Sw_GetConfig((phpalI18092mPI_Sw_DataParams_t *)pDataParams, wConfig, pValue)
#define phpalI18092mPI_GetSerialNo( pDataParams, pNfcId3Out) \
phpalI18092mPI_Sw_GetSerialNo((phpalI18092mPI_Sw_DataParams_t *)pDataParams, pNfcId3Out)
#define phpalI18092mPI_Wakeup( pDataParams) \
phpalI18092mPI_Sw_Wakeup((phpalI18092mPI_Sw_DataParams_t *)pDataParams)
#else
/**
* \brief Reset the ISO18092 protocol parameters.
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
*/
phStatus_t phpalI18092mPI_ResetProtocol(
void * pDataParams /**< [In] Pointer to this layer's parameter structure. */
);
/**
* \brief Perform an ISO18092 "Attribute Request" command.
*
* The following values for \c bLri are possible:\n
* \li #PHPAL_I18092MPI_FRAMESIZE_64
* \li #PHPAL_I18092MPI_FRAMESIZE_128
* \li #PHPAL_I18092MPI_FRAMESIZE_192
* \li #PHPAL_I18092MPI_FRAMESIZE_254
*
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PH_ERR_IO_TIMEOUT Timeout waiting for reply, e.g. target removal.
* \retval Other Depending on implementation and underlying component.
*/
phStatus_t phpalI18092mPI_Atr(
void * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint8_t * pNfcid3i, /**< [In] NFCID3 - randomly generated in case of 106kbps initial datarate or
NFCID2 in case of 212/424kbps datarate; uint8_t[10] */
uint8_t bDid, /**< [In] Device Identifier; '0' to disable usage else 1-14. */
uint8_t bLri, /**< [In] Length Reduction of Initiator; 0-3 */
uint8_t bNadEnable, /**< [In] Enable usage of Node Address; Unequal '0' to enable. */
uint8_t bNad, /**< [In] Node Address; Ignored if bNadEnabled is equal '0'. */
uint8_t * pGi, /**< [In] Optional General Information bytes. */
uint8_t bGiLength, /**< [In] Number of General Information bytes; Not more than #PHPAL_I18092MPI_MAX_GI_LENGTH. */
uint8_t * pAtrRes, /**< [Out] Attribute Response; uint8_t[64]. */
uint8_t * pAtrResLength /**< [Out] Attribute Response Length. */
);
/**
* \brief Perform an ISO18092 "Parameter Select" command.
*
* The following values for \c bDri and \c bDsi are possible:\n
* \li #PHPAL_I18092MPI_DATARATE_106
* \li #PHPAL_I18092MPI_DATARATE_212
* \li #PHPAL_I18092MPI_DATARATE_424
*
* The following values for \c bFsl are possible:\n
* \li #PHPAL_I18092MPI_FRAMESIZE_64
* \li #PHPAL_I18092MPI_FRAMESIZE_128
* \li #PHPAL_I18092MPI_FRAMESIZE_192
* \li #PHPAL_I18092MPI_FRAMESIZE_254
*
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PH_ERR_IO_TIMEOUT Timeout waiting for reply, e.g. target removal.
* \retval Other Depending on implementation and underlying component.
*/
phStatus_t phpalI18092mPI_Psl(
void * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint8_t bDsi, /**< [In] Divisor Send (target to initiator) Integer; 0-2 */
uint8_t bDri, /**< [In] Divisor Receive (initiator to target) Integer; 0-2 */
uint8_t bFsl /**< [In] Frame Length Byte; 0-3 */
);
/**
* \brief Perform an ISO18092 ATR and PSL command.
*
* The following values for \c bDri and \c bDsi are possible:\n
* \li #PHPAL_I18092MPI_DATARATE_106
* \li #PHPAL_I18092MPI_DATARATE_212
* \li #PHPAL_I18092MPI_DATARATE_424
*
* The following values for \c bFsl are possible:\n
* \li #PHPAL_I18092MPI_FRAMESIZE_64
* \li #PHPAL_I18092MPI_FRAMESIZE_128
* \li #PHPAL_I18092MPI_FRAMESIZE_192
* \li #PHPAL_I18092MPI_FRAMESIZE_254
*
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful, target activated.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PH_ERR_IO_TIMEOUT Timeout waiting for reply, e.g. target removal.
* \retval Other Depending on implementation and underlying component.
*/
phStatus_t phpalI18092mPI_ActivateCard(
void * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint8_t * pNfcid3i, /**< [In] NFCID3 - any number in case of 106kbps initial datarate.
For 212/424kbps datarate bytes 0 - 7 have to be NFCID2,
bytes 8 - 9 need to be set to 0; uint8_t[10] */
uint8_t bDid, /**< [In] Device Identifier; '0' to disable usage else 1-14. */
uint8_t bNadEnable, /**< [In] Enable usage of Node Address; Unequal '0' to enable. */
uint8_t bNad, /**< [In] Node Address; Ignored if bNadEnabled is equal '0'. */
uint8_t bDsi, /**< [In] Divisor Send (target to initiator) Integer; 0-7 */
uint8_t bDri, /**< [In] Divisor Receive (initiator to target) Integer; 0-7 */
uint8_t bFsl, /**< [In] Frame Length Byte; 0-3 */
uint8_t * pGi, /**< [In] Optional General Information bytes. */
uint8_t bGiLength, /**< [In] Number of General Information bytes. */
uint8_t * pAtrRes, /**< [Out] Attribute Response; uint8_t[64]. */
uint8_t * pAtrResLength /**< [Out] Attribute Response Length. */
);
/**
* \brief Deselect ISO18092 target by either sending DSL or RLS request.
*
* The following values for \c bDeselectCommand are possible:\n
* \li #PHPAL_I18092MPI_DESELECT_DSL
* \li #PHPAL_I18092MPI_DESELECT_RLS
*
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful, target deselected.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PH_ERR_IO_TIMEOUT Timeout waiting for reply, e.g. target removal.
*/
phStatus_t phpalI18092mPI_Deselect(
void * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint8_t bDeselectCommand /**< [In] Request to send, either #PHPAL_I18092MPI_DESELECT_DSL or #PHPAL_I18092MPI_DESELECT_RLS. */
);
/**
* \brief Perform presence check for current target.
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful, target is present.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PH_ERR_IO_TIMEOUT Timeout waiting for reply, e.g. target removal.
* \retval #PHPAL_I18092MPI_ERR_RECOVERY_FAILED Recovery failed, target does not respond any more.
*/
phStatus_t phpalI18092mPI_PresCheck(
void * pDataParams /**< [In] Pointer to this layer's parameter structure. */
);
/**
* \brief Perform ISO18092 Data Exchange with target.
*
* \c wOption can be one of:\n
* \li #PH_EXCHANGE_DEFAULT
* \li #PH_EXCHANGE_TXCHAINING
* \li #PH_EXCHANGE_RXCHAINING
* \li #PH_EXCHANGE_RXCHAINING_BUFSIZE
*
* Additionally, the following options are also available:\n
* \li #PH_EXCHANGE_BUFFER_FIRST
* \li #PH_EXCHANGE_BUFFER_CONT
* \li #PH_EXCHANGE_BUFFER_LAST
*
* Alternatively to the FIRST/CONT/LAST options, the following bits can be combined:\n
* \li #PH_EXCHANGE_BUFFERED_BIT
* \li #PH_EXCHANGE_LEAVE_BUFFER_BIT
*
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PH_ERR_IO_TIMEOUT Timeout waiting for reply, e.g. target removal.
* \retval #PHPAL_I18092MPI_ERR_RECOVERY_FAILED Recovery failed, target does not respond any more.
* \retval Other Depending on implementation and underlying component.
*/
phStatus_t phpalI18092mPI_Exchange(
void * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint16_t wOption, /**< [In] Option parameter. */
uint8_t * pTxBuffer, /**< [In] Data to transmit. */
uint16_t wTxLength, /**< [In] Length of data to transmit. */
uint8_t ** ppRxBuffer, /**< [Out] Pointer to received data. */
uint16_t * pRxLength /**< [Out] number of received data bytes. */
);
/**
* \brief Perform ISO18092 Data Transmit to target.
*
* \c wOption can be one of:\n
* \li #PH_TRANSMIT_DEFAULT
* \li #PH_TRANSMIT_TXCHAINING
*
* Additionally, the following options are also available:\n
* \li #PH_TRANSMIT_BUFFER_FIRST
* \li #PH_TRANSMIT_BUFFER_CONT
* \li #PH_TRANSMIT_BUFFER_LAST
*
* Alternatively to the FIRST/CONT/LAST options, the following bits can be combined:\n
* \li #PH_TRANSMIT_BUFFERED_BIT
* \li #PH_TRANSMIT_LEAVE_BUFFER_BIT
*
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PHPAL_I18092MPI_ERR_RECOVERY_FAILED Recovery failed, target does not respond any more.
* \retval Other Depending on implementation and underlying component.
*/
phStatus_t phpalI18092mPI_Transmit(
void * pDataParams,
uint16_t wOption,
uint8_t * pTxBuffer,
uint16_t wTxLength
);
/**
* \brief Perform ISO18092 Data Exchange with target.
*
* \c wOption can be one of:\n
* \li #PH_RECEIVE_DEFAULT
* \li #PH_RECEIVE_CHAINING
* \li #PH_RECEIVE_CHAINING_BUFSIZE
*
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PH_ERR_IO_TIMEOUT Timeout waiting for reply, e.g. target removal.
* \retval #PHPAL_I18092MPI_ERR_RECOVERY_FAILED Recovery failed, target does not respond any more.
* \retval Other Depending on implementation and underlying component.
*/
phStatus_t phpalI18092mPI_Receive(
void * pDataParams,
uint16_t wOption,
uint8_t ** ppRxBuffer,
uint16_t * pRxLength
);
/**
* \brief Set configuration parameter.
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
* \retval Other Depending on implementation and underlying component.
*/
phStatus_t phpalI18092mPI_SetConfig(
void * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint16_t wConfig, /**< [In] Configuration Identifier. */
uint16_t wValue /**< [In] Configuration Value. */
);
/**
* \brief Get configuration parameter.
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
* \retval Other Depending on implementation and underlying component.
*/
phStatus_t phpalI18092mPI_GetConfig(
void * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint16_t wConfig, /**< [In] Configuration Identifier. */
uint16_t * pValue /**< [Out] Configuration Value. */
);
/**
* \brief Retrieve the serial number (NFC ID3).
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful.
*/
phStatus_t phpalI18092mPI_GetSerialNo(
void * pDataParams, /**< [In] Pointer to this layer's parameter structure. */
uint8_t * pNfcId3Out /**< [Out] last NFCID3; uint8_t[10]. */
);
/**
* \brief Wakeup ISO18092 Active Target by sending WUP request.
*
* \return Status code
* \retval #PH_ERR_SUCCESS Operation successful, target deselected.
* \retval #PH_ERR_PROTOCOL_ERROR Received response is not ISO/IEC 18092 compliant.
* \retval #PH_ERR_IO_TIMEOUT Timeout waiting for reply, e.g. target removal.
* \retval #PHPAL_I18092MPI_ERR_RECOVERY_FAILED Recovery failed, target does not respond any more.
*/
phStatus_t phpalI18092mPI_Wakeup(
void * pDataParams /**< [In] Pointer to this layer's parameter structure. */
);
/** @} */
#endif /* NXPRDLIB_REM_GEN_INTFS */
#endif /* NXPBUILD__PHPAL_I18092MPI */
#ifdef __cplusplus
} /* Extern C */
#endif
#endif /* PHPALI18092MPI_H */