/*****************************************************************************
Function   : NV_File_Exist
Description: Judge the NV file is exist.
Input      : pcDir - the directory of NV file.
             pcFile- the name of NV file.
Return     : OK, or ERROR
Other      :
*****************************************************************************/
VOS_INT32 NV_File_Exist(VOS_CHAR *pcDir, VOS_CHAR *pcFile)
{
    VOS_INT32                           lRslt;
    VOS_CHAR                            acFilePath[MAX_PATH] = {0};

    strncpy(acFilePath, pcDir, (MAX_PATH - 1));

    if (VOS_NULL_PTR != pcFile)
    {
        strncat(acFilePath, pcFile, (MAX_PATH - VOS_StrLen(acFilePath) - 1));
    }

    lRslt = DRV_FILE_ACCESS(acFilePath, NV_FILE_EXIST_OK);

    return lRslt;
}
예제 #2
0
VOS_UINT32 OM_LittleImgInitLogFile(VOS_UINT32 ulFileSize)
{
    LOG_FILE_DISK_INFO_STRU stDiskInfo;

    /* 创建LOG文件对应的信号量 */
    if (VOS_OK != VOS_SmMCreate("FILE", VOS_SEMA4_FIFO, &g_stLogFileSaveInfo.ulSem))
    {
        g_ulLittleImgLogErr = LOG_OPERATION_CREATE_SEM_FAIL;

        return VOS_ERR;
    }

    if (VOS_OK != VOS_SmP(g_stLogFileSaveInfo.ulSem, LOG_SEM_TIMEOUT_VALUE))
    {
        g_ulLittleImgLogErr = LOG_OPERATION_POST_SEM_FAIL;

        return VOS_ERR;
    }

    /* 判断LOG目录是否已经存在 */
    if (VOS_OK != DRV_FILE_ACCESS(g_acLogFileSaveDir, 0))
    {
        /* 如果目录不存在则创建LOG目录 */
        if(DRV_ERROR == DRV_FILE_MKDIR(g_acLogFileSaveDir))
        {
            g_ulLittleImgLogErr = LOG_OPERATION_MKDIR_FAIL;
            VOS_SmV(g_stLogFileSaveInfo.ulSem);
            return VOS_ERR;
        }
    }

    g_stLogFileSaveInfo.ulFileMinId = 1;
    g_stLogFileSaveInfo.ulFileMaxId = 1;
    g_stLogFileSaveInfo.ulCurLogFileMaxSize = ulFileSize * LOG_FILE_UNIT_SIZE;

    /* 调用底软接口返回 */
    if (DRV_ERROR == DRV_FILE_GET_DISKSPACE(
                    g_acFileSystemRoot,
                    (VOS_UINT*)&stDiskInfo.ulDiskSpace,
                    (VOS_UINT*)&stDiskInfo.ulUsedSpace,
                    (VOS_UINT*)&stDiskInfo.ulValidSpace))
    {
        PS_LOG(WUEPS_PID_OM, 0, PS_PRINT_ERROR, "OM_LittleImgInitLogFile: DRV_FILE_GET_DISKSPACE Failed!");
        return VOS_ERR;
    }

    g_stLogFileSaveInfo.ulFSFreeSpace = stDiskInfo.ulValidSpace;

    /* 如果NV项中文件大小不合法,修改为默认值 */
    if (g_stLogFileSaveInfo.ulCurLogFileMaxSize > g_stLogFileSaveInfo.ulFSFreeSpace)
    {
        g_stLogFileSaveInfo.ulCurLogFileMaxSize = LOG_FILE_SIZE * LOG_FILE_UNIT_SIZE;
    }

    /* 如果默认值大于文件系统大小,返回失败 */
    if (g_stLogFileSaveInfo.ulCurLogFileMaxSize > g_stLogFileSaveInfo.ulFSFreeSpace)
    {
        g_ulLittleImgLogErr = LOG_OPERATION_LENGTH_TOOBIG;
        VOS_SmV(g_stLogFileSaveInfo.ulSem);
        return VOS_ERR;
    }

    if (VOS_OK != OM_LittleImgCreateLogFile(g_stLogFileSaveInfo.ulCurLogFileMaxSize))
    {
        LogPrint("\r\n OM_LittleImgInitLogFile: Create Log File Failed.! \r\n");
        VOS_SmV(g_stLogFileSaveInfo.ulSem);
        return VOS_ERR;
    }

    g_ulLogFileSaveFlg = LOG_FILE_ENABLE;

    VOS_SmV(g_stLogFileSaveInfo.ulSem);

    return VOS_OK;

}