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

📄 fs26fseek.c

📁 我今天开始上传5份TI、NXP、MTK的手机开发全套资料。希望对大家有很大的帮助
💻 C
字号:
#ifdef FSS_FTR#define ACCESS_RIGHTS_INTERNAL_FS#define FS26FSEEK_C#undef  FILE_NUMBER#define FILE_NUMBER 26 #include "Fs.h"#undef PROCEDURE_NUMBER #define PROCEDURE_NUMBER 1void Fs26_01FSeek ( void * pp_Param ){   register t_FsCmdFSeek * pl_Param = ( t_FsCmdFSeek * ) pp_Param;   register t_fsFILE * pl_Stream = pl_Param->p_Stream;   register s32 vl_NewPosition;   register s32 vl_BasePosition;/* #ifdef FS_DEBUG  */    /* Verify if  vp_Stream point on a stream if not OK enter an exception */    MC_FS_CO_VERIFY_IF_IS_FILE_OF_ENTITY( pl_Param, pl_Stream );    if ( MC_FS_STATUS(pl_Param) != FS_OK ) return;/* #endif */    /* Note that an operation was executed on the stream */    pl_Stream->v_OperationExecuted = 1;    /* Determine base of the position */    switch (pl_Param->v_Whence)    {	case FS_SEEK_SET:  vl_BasePosition = 0; 	     break;	case FS_SEEK_CUR:  vl_BasePosition =  pl_Stream->v_FilePosition;	     break;	case FS_SEEK_END: vl_BasePosition =  pl_Stream->v_FileSize;	     break;	/* Error return */	default:	   {		/* Err unknow whence -> invalid argument */		MC_FS_STATUS(pl_Param) = FS_EINVAL;		return ;	   }    }    /* Set the interlayer table pointer */    MC_FS_LL_SET_NEW_VOL(MC_FS_VD_GET_VOL_PTR_OF_FILE( pl_Stream ));    /* Calculate new position */    vl_NewPosition =  vl_BasePosition + pl_Param->v_Offset;    /* Verify if position not out of file */    if ( ( vl_NewPosition < 0 ) || (vl_NewPosition > pl_Stream->v_FileSize) )    {	/* Err invalid argument */	MC_FS_STATUS(pl_Param) = FS_EINVAL;	return ;    }    /* Updates file position */    pl_Stream->v_FilePosition = vl_NewPosition;    /* If file can be readen  and writen modify file state to READ_WRITE */    if ( ( pl_Stream->s_OpenMode.v_WriteEnabled == TRUE ) 				&& 	 ( pl_Stream->s_OpenMode.v_ReadEnabled == TRUE )        )    	pl_Stream->v_StreamState = FS_SSTATE_READ_OR_WRITE;    /* Update IO buffer content from file */    MC_FS_BF_UPDATE_IO_BUFF_FROM_FILE( pl_Stream, vl_NewPosition );}#undef PROCEDURE_NUMBER #define PROCEDURE_NUMBER 2u32 Fs26_02ProcessFSeek(u8 vp_Behaviour, t_fsFILE * pp_Stream, s32 vp_Offset, s32 vp_Whence ){   /* Reserve message space */   t_FsCmdFSeek * pl_FSeek = (t_FsCmdFSeek * ) MC_FS_GET_MEMORY(sizeof(t_FsCmdFSeek));    /* Fill message with input parameters */    pl_FSeek->p_Stream = pp_Stream;    pl_FSeek->v_Offset = vp_Offset;    pl_FSeek->v_Whence = vp_Whence;    /* Send message by setting operation and return command identifier */    return( MC_FS_MA_SEND_CMD_MSG_TO_FS(vp_Behaviour, (void*)pl_FSeek,FS_CMD_FSEEK_REQ ));}#endif /* FSS_FTR */

⌨️ 快捷键说明

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