/*****************************************************************************
函 数 名  : USIMM_File_Read
功能描述  : 从一个文件中读取内容
输入参数  :
            pBuf     --- 用于接收数据的内存地址
            ulSize   --- 单个元素的大小
            ulCount  --- 要读取内容的数据项个数
            Fp       --- 文件句柄
输出参数  : 无
返 回 值  : SI_UINT32 函数执行结果
调用函数  :
被调函数  : 外部接口

修改历史      :
1.日    期  : 2013年08月28日
  作    者  : zhuli
  修改内容  : Create
*****************************************************************************/
VOS_INT32 USIMM_File_Read(VOS_VOID *pBuf,VOS_UINT32 ulSize,VOS_UINT32 ulCount,FILE *Fp)
{
    VOS_INT                             lRslt;

    lRslt = DRV_FILE_READ(pBuf,ulSize,ulCount,Fp);

    if ( (VOS_UINT32)lRslt != ulCount )
    {
        USIMM_WARNING_LOG("Read File fail!");
    }

    return lRslt;
}
/*****************************************************************************
Function   : NV_File_Read
Description: Read data into an array
Input      : VOS_VOID *pBuf -> Where to copy data
             VOS_UINT32 ulSize -> Element size
             VOS_UINT32 ulCount -> No. of elements
             FILE *Fp -> File position
Return     : The number of elements successfully read
Other      :
*****************************************************************************/
VOS_INT32 NV_File_Read(VOS_VOID *pBuf,VOS_UINT32 ulSize,VOS_UINT32 ulCount,FILE *Fp)
{
    VOS_INT                             lRslt;

    lRslt = DRV_FILE_READ(pBuf,ulSize,ulCount,Fp);

    if ( (VOS_UINT32)lRslt != ulCount )
    {
        NV_Printf("NV:Read File fail.\r\n");
    }

    return lRslt;
}
SC_ERROR_CODE_ENUM_UINT32 SC_COMM_ReadFile(
    VOS_CHAR                           *pcFilePath,
    VOS_UINT8                          *pucContent,
    VOS_UINT32                          ulContentLen
)
{
    VOS_INT32                          lReadSize;
    FILE                               *pFile;

    /* 打开指定类型的签名文件 */
    pFile = DRV_FILE_OPEN(pcFilePath, "rb");

    if (VOS_NULL_PTR == pFile)
    {
        SC_ERROR_LOG("SC_COMM_ReadFile: DRV_FILE_OPEN is failed.");

        return SC_ERROR_CODE_OPEN_FILE_FAIL;
    }

    /* 读取文件内容 */
    lReadSize = DRV_FILE_READ((VOS_CHAR*)pucContent, sizeof(VOS_CHAR), ulContentLen, pFile);

    if ((VOS_INT32)ulContentLen != lReadSize)
    {
        DRV_FILE_CLOSE(pFile);

        SC_ERROR_LOG("SC_COMM_ReadFile: DRV_FILE_READ is failed.");

        return SC_ERROR_CODE_READ_FILE_FAIL;
    }

    /* 关闭文件 */
    DRV_FILE_CLOSE(pFile);

    return SC_ERROR_CODE_NO_ERROR;
}