📄 fslowlayer.him
字号:
#ifndef FSLOWLAYER_HIM#define FSLOWLAYER_HIM/* Low layer initialization */#define MC_FS_LL_INIT_LOW_LAYER( pp_Config ) Fs84_01LLInitLowLayer( pp_Config )#define MC_FS_LL_THREAD_COMM_INIT(pp_LayerCom, vp_TypeOfThread) \ Fs84_02LLThreadComInit( pp_LayerCom, vp_TypeOfThread )/****************************************************************************************//* *//* This macro calls the lower layer function READ, the prototype of this macro is *//* MC_FS_LL_READ ( t_LayerCommunication pp_LayCom, t_fsVolStruct * pp_VolumeContext,*//* t_fsFILE *pp_FileStream, ascii * pp_Buff, u32 vp_FilePosition, *//* u32 vp_Size, u16* p_Status); *//* *//****************************************************************************************/#define MC_FS_LL_INIT( pp_Status ) \ { \ t_fs_llInit s_Init; \ \ s_Init.p_Status = pp_Status; \ \ /* Call lower layer for init operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_INIT, &s_Init ); \ }#define MC_FS_LL_FORMAT_VOLUME( pp_Status ) \ { \ t_fs_llFormatVolume s_FormatVolume; \ \ s_FormatVolume.p_Status = pp_Status; \ \ /* Call lower layer for read operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_FORMAT_VOL, &s_FormatVolume ); \ }#define MC_FS_LL_READ( vp_Id, pp_Buff, vp_FilePosition, vp_Size, pp_status ) \ { \ t_fs_llRead s_Read; \ \ s_Read.v_Id = vp_Id; \ s_Read.p_Buff = pp_Buff; \ s_Read.v_FilePosition = vp_FilePosition; \ s_Read.v_Size = vp_Size; \ s_Read.p_Status = pp_status; \ \ /* Call lower layer for read operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_READ, &s_Read ); \ } #define MC_FS_LL_UPDATE_IOBUFF_CONF( vp_Size, pp_FileIOBuffMngt, pp_Status ) \ { \ t_fs_llUpdateIOBuffConf s_UpdateIOBuffConf; \ \ s_UpdateIOBuffConf.v_Size = vp_Size; \ s_UpdateIOBuffConf.p_FileIOBuffMngt = pp_FileIOBuffMngt; \ s_UpdateIOBuffConf.p_Status = pp_Status; \ \ /* Call lower layer for read operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_UPDATE_IOBUFF_CONF, &s_UpdateIOBuffConf ); \ }#define MC_FS_LL_WRITE_COMPLEX( pp_WriteHeader, pp_Status ) \ { \ t_fs_llWriteComplex s_WriteComplex; \ \ s_WriteComplex.p_Status = pp_Status; \ s_WriteComplex.p_WriteHeader = pp_WriteHeader; \ \ /* Call lower layer for read operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_WRITE_COMPLEX, &s_WriteComplex ); \ }#define MC_FS_LL_OPEN_FILE(pp_ObjInfo, pp_Status ) \ { \ t_fs_llFOpen s_OpenFile; \ \ s_OpenFile.p_ObjInfo = pp_ObjInfo; \ s_OpenFile.p_Status = pp_Status; \ \ /* Call lower layer for read operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_OPEN_FILE, &s_OpenFile ); \ }#define MC_FS_LL_CLOSE_FILE(vp_ID, pp_Status ) \ { \ t_fs_llFClose s_CloseFile; \ \ s_CloseFile.v_Id = vp_ID; \ s_CloseFile.p_Status = pp_Status; \ \ /* Call lower layer for read operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_CLOSE_FILE, &s_CloseFile ); \ }#define MC_FS_LL_CREATE_OBJ( pp_ObjInfo, vp_MaxFileSize, vp_ObjType, pp_Status ) \ { \ t_fs_llFCreate s_CreateFile; \ \ s_CreateFile.p_ObjInfo = pp_ObjInfo; \ s_CreateFile.v_ObjType = vp_ObjType; \ s_CreateFile.v_MaxFileSize = vp_MaxFileSize; \ s_CreateFile.p_Status = pp_Status; \ \ /* Call lower layer for read operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_CREATE_FILE, &s_CreateFile ); \ }#define MC_FS_LL_GET_OBJECT_INFO(pp_ObjInfo, pp_RestOfPath, pp_Status) \ { \ t_fs_llGetObjInfo s_GetObjectInfo; \ \ s_GetObjectInfo.p_ObjInfo = pp_ObjInfo; \ s_GetObjectInfo.p_RestOfPath = pp_RestOfPath; \ s_GetObjectInfo.p_Status = pp_Status; \ \ /* Call lower layer for read operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_GET_OBJ_INFO, &s_GetObjectInfo ); \ }#define MC_FS_LL_REMOVE_FILE( pp_ObjInfo, pp_Status ) \ { \ t_fs_llRemove s_RemoveFile; \ \ s_RemoveFile.p_ObjInfo = pp_ObjInfo; \ s_RemoveFile.p_Status = pp_Status; \ \ /* Call lower layer for remove operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_REMOVE, &s_RemoveFile ); \ } #define MC_FS_LL_RENAME( pp_ObjInfoOld, pp_RestOfPathOld, pp_ObjInfoNew, pp_RestOfPathNew, \ pp_Status ) \ { \ t_fs_llRename s_RenameFile; \ \ s_RenameFile.p_ObjInfoOld = pp_ObjInfoOld; \ s_RenameFile.p_RestOfPathOld = pp_RestOfPathOld; \ s_RenameFile.p_ObjInfoNew = pp_ObjInfoNew; \ s_RenameFile.p_RestOfPathNew = pp_RestOfPathNew; \ s_RenameFile.p_Status = pp_Status; \ \ /* Call lower layer for rename operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_RENAME, &s_RenameFile ); \ }#define MC_FS_LL_FFLUSH( vp_Id, pp_Status ) \ { \ t_fs_llFFlush s_FlushFile; \ \ s_FlushFile.v_Id = vp_Id; \ s_FlushFile.p_Status = pp_Status; \ \ /* Call lower layer for file flush operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_FFLUSH, &s_FlushFile ); \ }#define MC_FS_LL_GET_VOL_INFO( pp_VolumeInfo, pp_Status ) \ { \ t_fs_llGetVolInfo s_GetVolInfo; \ \ s_GetVolInfo.p_VolumeInfo = pp_VolumeInfo; \ s_GetVolInfo.p_Status = pp_Status; \ \ /* Call lower layer for get volume info operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_GET_VOL_INFO, &s_GetVolInfo ); \ }#define MC_FS_LL_OPEN_DIR( pp_ObjInfo, pp_FmPrivateDirInfo, pp_Status) \ { \ t_fs_llOpenDir s_OpenDir; \ \ s_OpenDir.p_ObjInfo = pp_ObjInfo; \ s_OpenDir.p_FmPrivateDirInfo = pp_FmPrivateDirInfo; \ s_OpenDir.p_Status = pp_Status; \ \ /* Call lower layer for open directory operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_OPEN_DIR, &s_OpenDir ); \ }#define MC_FS_LL_READDIR( vp_Which, pp_FmPrivateDirInfo, pp_DirName, pp_Found, \ pp_Status ) \ { \ t_fs_llReadDir s_ReadDir; \ \ s_ReadDir.v_Which = vp_Which; \ s_ReadDir.p_FmPrivateDirInfo = pp_FmPrivateDirInfo; \ s_ReadDir.p_DirName = pp_DirName; \ s_ReadDir.p_Found = pp_Found; \ s_ReadDir.p_Status = pp_Status; \ \ /* Call lower layer for read directory operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_READDIR, &s_ReadDir ); \ }#define MC_FS_LL_CLOSEDIR( pp_FmPrivateDirInfo, pp_Status ) \ { \ t_fs_llCloseDir s_CloseDir; \ \ s_CloseDir.p_FmPrivateDirInfo = pp_FmPrivateDirInfo; \ s_CloseDir.p_Status = pp_Status; \ \ /* Call lower layer for read directory operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_CLOSEDIR, &s_CloseDir ); \ }#define MC_FS_LL_CLOSEDIR( pp_FmPrivateDirInfo, pp_Status ) \ { \ t_fs_llCloseDir s_CloseDir; \ \ s_CloseDir.p_FmPrivateDirInfo = pp_FmPrivateDirInfo; \ s_CloseDir.p_Status = pp_Status; \ \ /* Call lower layer for read directory operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_CLOSEDIR, &s_CloseDir ); \ }#define MC_FS_LL_FREEZE_UNFREEZE_VOL( vp_Action, pp_Status ) \ { \ t_fs_llFreezeUnFreezeVol s_FreezeUnFreezeVol; \ \ s_FreezeUnFreezeVol.v_Action = vp_Action; \ s_FreezeUnFreezeVol.p_Status = pp_Status; \ \ /* Call lower layer for read directory operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_FREEZEUNFREEZEVOL, &s_FreezeUnFreezeVol ); \ }#define MC_FS_LL_GET_FILES_ADDR( vp_Type, vp_Id, vp_Which, pp_FmPrivateDirInfo, \ vp_NumbFilesToGet, pp_FileAddr, vp_BuffSize, pp_NumbOfFiles, pp_Status ) \ { \ t_fs_llGetFilesAddr s_GetFilesAddr; \ \ s_GetFilesAddr.v_Type = vp_Type; \ s_GetFilesAddr.v_Id = vp_Id; \ s_GetFilesAddr.v_Which = vp_Which; \ s_GetFilesAddr.p_FmPrivateDirInfo = pp_FmPrivateDirInfo; \ s_GetFilesAddr.v_NumbFilesToGet = vp_NumbFilesToGet; \ s_GetFilesAddr.p_FileAddr = pp_FileAddr; \ s_GetFilesAddr.v_BuffSize = vp_BuffSize; \ s_GetFilesAddr.p_NumbOfFiles = pp_NumbOfFiles; \ s_GetFilesAddr.p_Status = pp_Status; \ \ /* Call lower layer for read directory operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_GETFILESADDR, &s_GetFilesAddr ); \ }#define MC_FS_LL_GARBAGE_VOL( vp_GarbageMode, pp_Status ) \ { \ t_fs_llGarbageVol s_GarbageVol; \ \ s_GarbageVol.v_GarbageMode = vp_GarbageMode; \ s_GarbageVol.p_Status = pp_Status; \ \ /* Call lower layer for read directory operation */ \ MC_FS_LL_CALL_LOWER_LAYER( FS_LL_OPER_GARBAGEVOL, &s_GarbageVol ); \ }#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -