⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fs55getfileadr.c

📁 我今天开始上传5份TI、NXP、MTK的手机开发全套资料。希望对大家有很大的帮助
💻 C
字号:
#ifdef FSS_FTR#define ACCESS_RIGHTS_INTERNAL_FS#define FS55GETFILEADDR_C#undef  FILE_NUMBER#define FILE_NUMBER 55 #include "Fs.h"#undef PROCEDURE_NUMBER #define PROCEDURE_NUMBER 1void Fs55_01GetFileAddress( void * pp_Param ){   t_fsVolStruct * pl_Volume;   t_FsCmdGetFileAddr * pl_Param = (t_FsCmdGetFileAddr *) pp_Param;   t_fsEntityStruct * pl_FsEntityPtr = NIL;	/* Pointer on entity's CB */   fsPath * pl_RestOfPath;   /* Point in the path after the volume name or if the current path is				available pointer on it */   t_ObjectInfo sl_Info;      /* Information on an object given from LL */   s32 vl_NumbOfFiles;    /* Get entity's context pointer if current path used ( file path begin not with slatch ) */    if ( *pl_Param->p_FileName != '/' )    	pl_FsEntityPtr = MC_FS_ED_GET_ENTITY_PTR( MC_FS_KERNEL_ID(pl_Param) );    /* Get volume of object */    pl_Volume =  MC_FS_CO_GIVE_VOLUME_FROM_PATH( pl_FsEntityPtr, (ascii*)pl_Param->p_FileName, 						&pl_RestOfPath, &sl_Info, 						&MC_FS_STATUS(pl_Param));    /* If no volume return ( status was update by function ) */    if ( pl_Volume == NIL ) return;    /* If rest of path empty  no file name can be present -> err no entry */     if ( pl_RestOfPath == NIL )    { 	MC_FS_STATUS(pl_Param) = FS_ENOENT;	return;    }    /* Set the interlayer table pointer */    MC_FS_LL_SET_NEW_VOL(pl_Volume);     /* Take info on object ( dir exist, object exist, ...) at low layers */    MC_FS_LL_GET_OBJECT_INFO (&sl_Info, pl_RestOfPath, &MC_FS_STATUS(pl_Param));    /* If an error in info get return */    if ( MC_FS_STATUS(pl_Param) != FS_OK ) return;    /* This file exist ? */    if ( sl_Info.s_FileStatus.v_ObjExist )    {  	/* Verify if object is a file */        if ( sl_Info.s_FileStatus.v_ObjIsFile == FALSE )	{	    /* Object is not a file but a directory error */	    MC_FS_STATUS(pl_Param) = FS_EISDIR;	    return;	}    }    else    {   	/* No object exist return no entry */ 	MC_FS_STATUS(pl_Param) = FS_ENOENT;	return;    }    /* Call lower layers to have address of file */    pl_Param->p_FileAddr = NIL; /* Address buffer is to allocate by lower layers */    MC_FS_LL_GET_FILES_ADDR( FS_READ_SINGLE_ADDR_WITH_ID, sl_Info.v_ObjID, 0, NIL ,1 , 					&pl_Param->p_FileAddr, 0, &vl_NumbOfFiles, &MC_FS_STATUS(pl_Param) );}#undef PROCEDURE_NUMBER #define PROCEDURE_NUMBER 2u32 Fs55_02ProcessGetFileAddress( const fssPath * pp_FileName ){   /* Reserve message space */   t_FsCmdGetFileAddr * pl_GetFileAddr = (t_FsCmdGetFileAddr *)				 MC_FS_GET_MEMORY(sizeof(t_FsCmdGetFileAddr));    /* Fill message with input parameters */    pl_GetFileAddr->p_FileName = pp_FileName;    /* Send message by setting operation and return command identifier */    return( MC_FS_MA_SEND_CMD_MSG_TO_FS( FS_WITH_ACK, (void*) pl_GetFileAddr, FS_CMD_GETFILEADDR_REQ));}#endif /* FSS_FTR */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -