📄 mfm25create.c
字号:
#ifdef FSS_FTR#define ACCESS_RIGHTS_INTERNAL_MFM#define MFM25CREATE_C#include "mFm.h"#undef FILE_NUMBER#define FILE_NUMBER 25 #undef PROCEDURE_NUMBER #define PROCEDURE_NUMBER 1/* Creates an object which can be a file or a directory */void mFm25_01Create( void * pp_LayerContext, void * pp_Param){ t_fs_llFCreate * pl_Param = (t_fs_llFCreate *) pp_Param; t_ObjectInfo * pl_ObjInfo = pl_Param->p_ObjInfo; t_DirFileInfo * pl_DirFileInfo = (t_DirFileInfo *) &pl_ObjInfo->a_LowLayerPrivate[0]; u16 vl_NewID; s32 vl_GarbageStatus = FS_OK; /* Verify if token acceptable ( size and characters ) */ MC_FS_CO_VERIFY_TOKEN( pl_ObjInfo->p_LastTokenInPath, pl_ObjInfo->v_SizeOfLastTokenInPath, FS_NAME_MAX, pl_Param->p_Status ); if ( *pl_Param->p_Status != FS_OK ) return; /* Get lower layer to creates a new file */ MC_MFM_LL_CREATE_FILE ( &vl_NewID, pl_Param->v_MaxFileSize, pl_Param->p_Status ); /* If creation not ok exit */ if ( *pl_Param->p_Status != FS_OK ) return; /* Insert object link in directory file */ mFm80_05InsertObjInDir( pl_ObjInfo->v_DirID , vl_NewID, pl_ObjInfo->p_LastTokenInPath, pl_ObjInfo->v_SizeOfLastTokenInPath, pl_Param->v_ObjType, pl_DirFileInfo, (t_mFmLayerContext *) pp_LayerContext, pl_Param->p_Status); /* If insertion of object link in dir file not OK removes the file */ if ( *pl_Param->p_Status != FS_OK ) { /* Removes the file */ MC_MFM_LL_REMOVE_FILE( vl_NewID, &vl_GarbageStatus ); /* And return */ return; } else { /* Update object info structure */ pl_ObjInfo->v_ObjID = vl_NewID; pl_ObjInfo->v_FileSize = 0; pl_ObjInfo->s_FileStatus.v_ObjExist = TRUE; if ( pl_Param->v_ObjType == FS_OBJECT_FILE ) pl_ObjInfo->s_FileStatus.v_ObjIsFile = TRUE; else pl_ObjInfo->s_FileStatus.v_ObjIsFile = FALSE; }}#endif /* FSS_FTR */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -