Merge branch 'master' of git://git.ucc.asn.au/tpg/acess2
[tpg/acess2.git] / KernelLand / Kernel / memfs_helpers.c
diff --git a/KernelLand/Kernel/memfs_helpers.c b/KernelLand/Kernel/memfs_helpers.c
new file mode 100644 (file)
index 0000000..a7e5fc4
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Acess2 Kernel
+ * - By John Hodge (thePowersGang)
+ *
+ * memfs_helpers.c
+ * - Helpers for in-memory filesystems
+ */
+#include <memfs_helpers.h>
+
+// === CODE ===
+void MemFS_InitDir(tMemFS_DirHdr *Dir)
+{
+       MemFS_InitFile(&Dir->FileHdr);
+}
+void MemFS_InitFile(tMemFS_FileHdr *File)
+{
+       File->Next = NULL;
+}
+
+int MemFS_ReadDir(tMemFS_DirHdr *Dir, int Pos, char Name[FILENAME_MAX])
+{
+        int    i = 0;
+       // TODO: Lock
+       for( tMemFS_FileHdr *file = Dir->FirstChild; file; file = file->Next, i ++ )
+       {
+               if( i == Pos )
+               {
+                       strncpy(Name, file->Name, FILENAME_MAX);
+                       return 0;
+               }
+       }
+       return -EINVAL;
+}
+tMemFS_FileHdr *MemFS_FindDir(tMemFS_DirHdr *Dir, const char *Name)
+{
+       // TODO: Lock
+       for( tMemFS_FileHdr *file = Dir->FirstChild; file; file = file->Next )
+       {
+               if( strcmp(file->Name, Name) == 0 )
+                       return file;
+       }
+       return NULL;
+}
+tMemFS_FileHdr *MemFS_Remove(tMemFS_DirHdr *Dir, const char *Name)
+{
+       UNIMPLEMENTED();
+       return NULL;
+}
+bool MemFS_Insert(tMemFS_DirHdr *Dir, tMemFS_FileHdr *File)
+{
+       UNIMPLEMENTED();
+       return false;
+}
+

UCC git Repository :: git.ucc.asn.au