📄 fslowlayer.het
字号:
#ifndef FSLOWLAYER_HET#define FSLOWLAYER_HET/* this structure contains the structures used for complex write command *//*------------------------------------------------------------------------------*/typedef struct st_WriteCmd { union { s32 v_SrceIndex; ascii * p_Srce; ascii v_Value; } u_Srce; union { s32 v_DestIndex; ascii * p_Dest; } u_Dest; s32 v_Size; s32 v_SizeCopied; u32 v_SrceFileId; u8 v_TypeOfCmd; MC_PCC_FILL_STRUCT3 } t_WriteCmd;typedef struct st_WriteCmdHeader { void * p_NextWriteCmdHeader; /* Linked list of write commands */ s16 v_OffsetInFile; /* Offset of commands in file */ u8 v_NbrCmds; /* Number of commands which follows */ MC_PCC_FILL_STRUCT1 } t_WriteCmdHeader;typedef struct st_WriteHeader { struct st_WriteHeader * p_NextWriteHeader; /* Linked list of write headers */ t_WriteCmdHeader * p_NextWriteCmdHeader; /* Linked list of write command headers */ s32 v_FinalFileSize; /* Final size of the file */ u32 v_DestFileId; /* Destination file ID */#ifdef SYNCHRONOUS_FILE_SYSTEM_FTR u8 v_NoDelayFlag; /* Indicates whether delay accepted */ MC_PCC_FILL_STRUCT3#endif } t_WriteHeader;typedef struct st_WriteCmdStruct1 { t_WriteCmdHeader s_WriteCmdHeader; t_WriteCmd s_WriteCmd[1]; /* Place for commands */ } t_WriteCmdStruct1;typedef struct st_WriteCmdStruct2 { t_WriteCmdHeader s_WriteCmdHeader; t_WriteCmd s_WriteCmd[2]; /* Place for commands */ } t_WriteCmdStruct2;typedef struct st_WriteCmdStruct3 { t_WriteCmdHeader s_WriteCmdHeader; t_WriteCmd s_WriteCmd[3]; /* Place for commands */ } t_WriteCmdStruct3;typedef struct st_WriteCmdStruct4 { t_WriteCmdHeader s_WriteCmdHeader; t_WriteCmd s_WriteCmd[4]; /* Place for commands */ } t_WriteCmdStruct4;/* This structure contains information about a file, this structure is update by *//* Get Object Info command *//*--------------------------------------------------------------------------------------*/typedef struct st_ObjectInfo { /* t_fs_mod_t s_Mode; */ /* Mode of file ( type, acces permissions Owner Group Other */ s32 v_FileSize; /* Size of the file */ u32 v_ObjID; /* ID of the volume manager for the object */ u32 v_DirID; /* Id of the volume manager for the containing directory */ struct { u32 v_DirExist : 1 ; /* Directory which contains the object exist *//* u32 v_DirRAccess : 1; */ /* Directory is read accessible to user *//* u32 v_DirWAccess : 1; */ /* Directory accessible to create an object *//* u32 v_DirXAccess : 1; */ /* Directory is search accessible to user */ u32 v_ObjExist : 1; /* The object exist */ u32 v_ObjIsFile : 1; /* Object is a file else a directory */ u32 v_ObjIsEmpty:1; /* Set if object is empty ( directory empty ) *//* u32 v_ObjRAccess : 1; */ /* The object is read accessible to the user *//* u32 v_ObjWAccess : 1; */ /* The object is write (file) or create ( dir) accessible to the user *//* u32 v_ObjXAccess : 1; */ /* The object is execute (file) or search (dir) accessible to the user */ u32 v_Unused:24; } s_FileStatus; ascii* p_LastTokenInPath; /* Address of last token in path */ u8 v_SizeOfLastTokenInPath; /* Size of last token in path */ MC_PCC_FILL_STRUCT3 /* This parameter must be at end of structure */ u8 a_LowLayerPrivate[ALIGN(FS_SIZE_PRIVATE_DATA)]; /* Private data of lower layer, usage vorbid to FS layer */ } t_ObjectInfo;typedef struct st_fsInternalVolInfo { s32 v_FreeSize; s32 v_TotalSize; u32 v_NumberOfFiles; s32 v_FreeSizeAfterDefrag; s32 v_MaxFileSizeBeforeDefrag; s32 v_MaxFileSizeAfterDefrag; u8 v_State; MC_PCC_FILL_STRUCT3 } t_fsInternalVolInfo;/* This file contains the structure of the messages of the communication with the lower layer of FS */typedef struct st_fs_llGeneric { u16 v_Operation; MC_PCC_FILL_STRUCT2 s32 * p_Status; } t_fs_llGeneric;typedef struct st_fs_llInit { u16 v_Operation; MC_PCC_FILL_STRUCT2 s32 * p_Status; } t_fs_llInit;typedef struct st_fs_llRead { u16 v_Operation; MC_PCC_FILL_STRUCT2 u32 v_Id; ascii * p_Buff; u32 v_FilePosition; u32 v_Size; s32 * p_Status; } t_fs_llRead; typedef struct st_fs_llUpdateIOBuffConf { u16 v_Operation; MC_PCC_FILL_STRUCT2 u32 v_Size; t_FileIOBuffMngt * p_FileIOBuffMngt; s32 * p_Status; } t_fs_llUpdateIOBuffConf;typedef struct st_fs_llWriteComplex { u16 v_Operation; MC_PCC_FILL_STRUCT2 s32 * p_Status; t_WriteHeader * p_WriteHeader; } t_fs_llWriteComplex;typedef struct st_fs_llFOpen { u16 v_Operation; MC_PCC_FILL_STRUCT2 t_ObjectInfo * p_ObjInfo; s32 * p_Status; u32 v_Id; } t_fs_llFOpen;typedef struct st_fs_llFClose { u16 v_Operation; MC_PCC_FILL_STRUCT2 u32 v_Id; s32 * p_Status; } t_fs_llFClose;typedef struct st_fs_llFCreate { u16 v_Operation; u8 v_ObjType; MC_PCC_FILL_STRUCT1 t_ObjectInfo * p_ObjInfo; s32 v_MaxFileSize; s32 * p_Status; } t_fs_llFCreate; typedef struct st_fs_llFormatVolume { u16 v_Operation; MC_PCC_FILL_STRUCT2 t_fsVolStruct * p_Volume; s32 * p_Status; } t_fs_llFormatVolume;typedef struct st_fs_llRemove { u16 v_Operation; MC_PCC_FILL_STRUCT2 t_ObjectInfo * p_ObjInfo; s32 * p_Status; } t_fs_llRemove;typedef struct st_fs_llGetObjInfo { u16 v_Operation; MC_PCC_FILL_STRUCT2 t_ObjectInfo * p_ObjInfo; ascii * p_RestOfPath; s32 * p_Status; } t_fs_llGetObjInfo; typedef struct st_fs_llRename { u16 v_Operation; MC_PCC_FILL_STRUCT2 t_ObjectInfo * p_ObjInfoOld; ascii * p_RestOfPathOld; t_ObjectInfo * p_ObjInfoNew; ascii * p_RestOfPathNew; s32 * p_Status; } t_fs_llRename;typedef struct st_fs_llFFlush { u16 v_Operation; MC_PCC_FILL_STRUCT2 u32 v_Id; s32 * p_Status; } t_fs_llFFlush;typedef struct st_fs_llGetVolInfo { u16 v_Operation; MC_PCC_FILL_STRUCT2 t_fsInternalVolInfo * p_VolumeInfo; s32 * p_Status; } t_fs_llGetVolInfo;typedef struct st_fs_llOpenDir { u16 v_Operation; MC_PCC_FILL_STRUCT2 t_ObjectInfo * p_ObjInfo; void ** p_FmPrivateDirInfo; s32 * p_Status; } t_fs_llOpenDir;typedef struct st_fs_llReadDir { u16 v_Operation; u16 v_Which; /* Is first or next */ void * p_FmPrivateDirInfo; ascii * p_DirName; u8 * p_Found; s32 * p_Status; } t_fs_llReadDir;typedef struct st_fs_llCloseDir { u16 v_Operation; MC_PCC_FILL_STRUCT2 void * p_FmPrivateDirInfo; s32 * p_Status; } t_fs_llCloseDir;typedef struct st_fs_llFreezeUnFreezeVol { u16 v_Operation; u8 v_Action; MC_PCC_FILL_STRUCT1 s32 * p_Status; } t_fs_llFreezeUnFreezeVol;typedef struct st_fs_llGetFilesAddr { u16 v_Operation; u16 v_Which; /* Is first or next */ u8 v_Type; MC_PCC_FILL_STRUCT3 u32 v_Id; void * p_FmPrivateDirInfo; s32 v_NumbFilesToGet; t_fssFileAddr ** p_FileAddr; u32 v_BuffSize; s32 * p_NumbOfFiles; s32 * p_Status; } t_fs_llGetFilesAddr;typedef struct st_fs_llGarbageVol { u16 v_Operation; u8 v_GarbageMode; MC_PCC_FILL_STRUCT1 s32 * p_Status; } t_fs_llGarbageVol;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -