📄 fvmi40readfile.c
字号:
#ifdef FSS_FTR#define ACCESS_RIGHTS_INTERNAL_FVMI#define FVMI40READFILE_C#include "fVmi.h"#undef FILE_NUMBER#define FILE_NUMBER 40/******************************************************************************** This procedure is used to read a file.*******************************************************************************/#undef PROCEDURE_NUMBER #define PROCEDURE_NUMBER 1void fVmi40_01ReadFile(void * pp_LayerContext, void * pp_Param){ t_mfm_llRead * pl_Param = (t_mfm_llRead *) pp_Param; t_SendInfo s_SendInfo; t_AnswerInfo s_AnswerInfo; t_fvm_fss_ReadFileCnf * pl_ReadFileCnf; /* Reserve memory block for the request message */ t_fvm_fss_ReadFileReq * pl_ReadFileReq = (t_fvm_fss_ReadFileReq *) MC_RTK_GET_MEMORY(sizeof(t_fvm_fss_ReadFileReq)); /* Fill structure */ pl_ReadFileReq->v_FileNumber = pl_Param->v_Id; pl_ReadFileReq->v_Offset = pl_Param->v_FilePosition; pl_ReadFileReq->v_SizeOfData = pl_Param->v_Size; pl_ReadFileReq->p_AddressOfData = (u8 *) pl_Param->p_Buff; /* Send message and wait answer */ s_SendInfo.p_MsgAddress = (t_MsgHeader *) pl_ReadFileReq; s_SendInfo.v_OpType = MOBI_FVM_FSS_READ_FILE_REQ; fVmi05_01SendMsgAndWaitAnswer(&s_SendInfo, &s_AnswerInfo); pl_ReadFileCnf = (t_fvm_fss_ReadFileCnf *) s_AnswerInfo.p_MsgAddress; /* If status = OK update the buffer address (in case FVM has modified it) else update status */ if (s_AnswerInfo.v_Status == FS_OK) *pl_Param->p_Buff = (ascii) *pl_ReadFileCnf->p_AddressOfData; else *pl_Param->p_Status = s_AnswerInfo.v_Status; /* Release memory block of the received message */ MC_RTK_FREE_MEMORY(s_AnswerInfo.p_MsgAddress);}#endif /* FSS_FTR */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -