luxos/Kernel/hal/vfs.c

41 lines
923 B
C

#include<fileio.h>
#include<storage.h>
#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;
}