#include #include #define MAX_FS_COUNT 64 uint32 FsRead(FsNode *node, uint32 offset, uint32 size, uint8 *buffer) { if (node->Read != NULL) return node->Read(node, offset, size, buffer); return NULL; } uint32 FsWrite(FsNode *node, uint32 offset, uint32 size, uint8 *buffer) { if (node->Write != NULL) return node->Write(node, offset, size, buffer); return NULL; } void FsOpen(FsNode *node, uint8 read, uint8 write) { if (node->Open != NULL) return node->Open(node, read, write); } void FsClose(FsNode *node) { if (node->Close != NULL) return node->Close(); } DirectoryEntry *FsReadDir(FsNode *node, uint32 index) { if (node->ReadDir != NULL && (node->Flags&7) == FsDirectory) return node->ReadDir(node, index); return NULL; } FsNode *FsFindDir(FsNode *node, char *name) { if (node->FindDir != NULL && (node->Flags&7) == FsDirectory) return node->FindDir(node, name); return NULL; }