41 lines
923 B
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;
|
|
}
|