788 lines
28 KiB
Plaintext
788 lines
28 KiB
Plaintext
/*
|
|
* 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 MIFARE product Application Component of Reader Library Framework.
|
|
* $Author$
|
|
* $Revision$ (v07.10.00)
|
|
* $Date$
|
|
*
|
|
* History:
|
|
* CHu: Generated 31. July 2009
|
|
*
|
|
*/
|
|
|
|
#include <ph_Status.h>
|
|
#include <phalMfc.h>
|
|
#include <phhalHw.h>
|
|
#include <phpalMifare.h>
|
|
#include <ph_RefDefs.h>
|
|
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
#include "Sw/phalMfc_Sw.h"
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
#ifdef NXPBUILD__PHAL_MFC
|
|
|
|
#ifndef NXPRDLIB_REM_GEN_INTFS
|
|
|
|
phStatus_t phalMfc_Authenticate(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo,
|
|
uint8_t bKeyType,
|
|
uint16_t wKeyNumber,
|
|
uint16_t wKeyVersion,
|
|
uint8_t * pUid,
|
|
uint8_t bUidLength
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_Authenticate");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bKeyType);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyNumber);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(wKeyVersion);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pUid);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bKeyType_log, &bKeyType);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, wKeyNumber_log, &wKeyNumber);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_DEBUG, wKeyVersion_log, &wKeyVersion);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pUid_log, pUid, bUidLength);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pUid);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_Authenticate((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo, bKeyType, wKeyNumber, wKeyVersion, pUid, bUidLength);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_Read(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo,
|
|
uint8_t * pBlockData
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_Read");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pBlockData);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pBlockData);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_Read((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo, pBlockData);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
#ifdef NXPBUILD__PH_LOG
|
|
if ((status & PH_ERR_MASK) == PH_ERR_SUCCESS)
|
|
{
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pBlockData_log, pBlockData, 16);
|
|
}
|
|
#endif
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_ReadValue(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo,
|
|
uint8_t * pValue,
|
|
uint8_t * pAddrData
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_ReadValue");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pAddrData);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pValue);
|
|
PH_ASSERT_NULL (pAddrData);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_ReadValue((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo, pValue, pAddrData);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
#ifdef NXPBUILD__PH_LOG
|
|
if ((status & PH_ERR_MASK) == PH_ERR_SUCCESS)
|
|
{
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pValue_log, pValue, 4);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, pAddrData_log, pAddrData);
|
|
}
|
|
#endif
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_Write(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo,
|
|
uint8_t * pBlockData
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_Write");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pBlockData);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pBlockData_log, pBlockData, 16);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pBlockData);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_Write((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo, pBlockData);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_WriteValue(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo,
|
|
uint8_t * pValue,
|
|
uint8_t bAddrData
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_WriteValue");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bAddrData);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pValue_log, pValue, 4);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bAddrData_log, &bAddrData);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pValue);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_WriteValue((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo, pValue, bAddrData);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_Increment(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo,
|
|
uint8_t * pValue
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_Increment");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pValue_log, pValue, 4);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pValue);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_Increment((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo, pValue);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_Decrement(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo,
|
|
uint8_t * pValue
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_Decrement");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pValue_log, pValue, 4);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pValue);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_Decrement((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo, pValue);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_Transfer(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_Transfer");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_Transfer((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_Restore(
|
|
void * pDataParams,
|
|
uint8_t bBlockNo
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_Restore");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bBlockNo_log, &bBlockNo);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_Restore((phalMfc_Sw_DataParams_t *)pDataParams, bBlockNo);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_IncrementTransfer(
|
|
void * pDataParams,
|
|
uint8_t bSrcBlockNo,
|
|
uint8_t bDstBlockNo,
|
|
uint8_t * pValue
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_IncrementTransfer");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bSrcBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bDstBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bSrcBlockNo_log, &bSrcBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bDstBlockNo_log, &bDstBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pValue_log, pValue, 4);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pValue);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_IncrementTransfer((phalMfc_Sw_DataParams_t *)pDataParams, bSrcBlockNo, bDstBlockNo, pValue);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_DecrementTransfer(
|
|
void * pDataParams,
|
|
uint8_t bSrcBlockNo,
|
|
uint8_t bDstBlockNo,
|
|
uint8_t * pValue
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_DecrementTransfer");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bSrcBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bDstBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pValue);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bSrcBlockNo_log, &bSrcBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bDstBlockNo_log, &bDstBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pValue_log, pValue, 4);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
PH_ASSERT_NULL (pValue);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_DecrementTransfer((phalMfc_Sw_DataParams_t *)pDataParams, bSrcBlockNo, bDstBlockNo, pValue);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_RestoreTransfer(
|
|
void * pDataParams,
|
|
uint8_t bSrcBlockNo,
|
|
uint8_t bDstBlockNo
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_RestoreTransfer");
|
|
/*PH_LOG_HELPER_ALLOCATE_PARAMNAME(pDataParams);*/
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bSrcBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bDstBlockNo);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bSrcBlockNo_log, &bSrcBlockNo);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bDstBlockNo_log, &bDstBlockNo);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_RestoreTransfer((phalMfc_Sw_DataParams_t *)pDataParams, bSrcBlockNo, bDstBlockNo);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_PersonalizeUid(
|
|
void * pDataParams,
|
|
uint8_t bUidType
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_PersonalizeUid");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(bUidType);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT8(PH_LOG_LOGTYPE_DEBUG, bUidType_log, &bUidType);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_PersonalizeUid((phalMfc_Sw_DataParams_t *)pDataParams, bUidType);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
phStatus_t phalMfc_GetVersion(
|
|
void * pDataParams,
|
|
uint8_t * pVersion
|
|
)
|
|
{
|
|
phStatus_t PH_MEMLOC_REM status;
|
|
|
|
PH_LOG_HELPER_ALLOCATE_TEXT(bFunctionName, "phalMfc_GetVersion");
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(status);
|
|
PH_LOG_HELPER_ALLOCATE_PARAMNAME(pVersion);
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pVersion_log, pVersion, 8);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_ENTER);
|
|
PH_ASSERT_NULL (pDataParams);
|
|
|
|
if (PH_GET_COMPCODE(pDataParams) != PH_COMP_AL_MFC)
|
|
{
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
|
|
PH_LOG_HELPER_ADDSTRING(PH_LOG_LOGTYPE_INFO, bFunctionName);
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
/* perform operation on active layer */
|
|
switch (PH_GET_COMPID(pDataParams))
|
|
{
|
|
#ifdef NXPBUILD__PHAL_MFC_SW
|
|
case PHAL_MFC_SW_ID:
|
|
status = phalMfc_Sw_GetVersion((phalMfc_Sw_DataParams_t *)pDataParams, pVersion);
|
|
break;
|
|
#endif /* NXPBUILD__PHAL_MFC_SW */
|
|
default:
|
|
status = PH_ADD_COMPCODE_FIXED(PH_ERR_INVALID_DATA_PARAMS, PH_COMP_AL_MFC);
|
|
break;
|
|
}
|
|
#ifdef NXPBUILD__PH_LOG
|
|
if ( (status & PH_ERR_MASK) == PH_ERR_SUCCESS)
|
|
{
|
|
PH_LOG_HELPER_ADDPARAM_BUFFER(PH_LOG_LOGTYPE_DEBUG, pVersion_log, pVersion, 8);
|
|
}
|
|
#endif
|
|
PH_LOG_HELPER_ADDPARAM_UINT16(PH_LOG_LOGTYPE_INFO, status_log, &status);
|
|
PH_LOG_HELPER_EXECUTE(PH_LOG_OPTION_CATEGORY_LEAVE);
|
|
|
|
return status;
|
|
}
|
|
|
|
#endif /* NXPRDLIB_REM_GEN_INTFS */
|
|
|
|
#endif /* NXPBUILD__PHAL_MFC */
|