diff options
Diffstat (limited to 'kernel.soso/rootfs.c')
-rw-r--r-- | kernel.soso/rootfs.c | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/kernel.soso/rootfs.c b/kernel.soso/rootfs.c deleted file mode 100644 index 9104b01f..00000000 --- a/kernel.soso/rootfs.c +++ /dev/null @@ -1,96 +0,0 @@ -#include "rootfs.h" -#include "alloc.h" - -static BOOL rootfs_open(File *node, uint32 flags); -static void rootfs_close(File *file); -static FileSystemNode *rootfs_finddir(FileSystemNode *node, char *name); -static struct FileSystemDirent *rootfs_readdir(FileSystemNode *node, uint32 index); -static BOOL rootfs_mkdir(FileSystemNode *node, const char *name, uint32 flags); - -FileSystemNode* initializeRootFS() { - FileSystemNode* root = (FileSystemNode*)kmalloc(sizeof(FileSystemNode)); - memset((uint8*)root, 0, sizeof(FileSystemNode)); - root->nodeType = FT_Directory; - root->open = rootfs_open; - root->close = rootfs_close; - root->readdir = rootfs_readdir; - root->finddir = rootfs_finddir; - root->mkdir = rootfs_mkdir; - - return root; -} - -static FileSystemDirent gDirent; - -static BOOL rootfs_open(File *node, uint32 flags) { - return TRUE; -} - -static void rootfs_close(File *file) { - -} - -static struct FileSystemDirent *rootfs_readdir(FileSystemNode *node, uint32 index) { - FileSystemNode *n = node->firstChild; - uint32 i = 0; - while (NULL != n) { - if (index == i) { - gDirent.fileType = n->nodeType; - gDirent.inode = n->inode; - strcpy(gDirent.name, n->name); - - return &gDirent; - } - n = n->nextSibling; - ++i; - } - - return NULL; -} - -static FileSystemNode *rootfs_finddir(FileSystemNode *node, char *name) { - FileSystemNode *n = node->firstChild; - while (NULL != n) { - if (strcmp(name, n->name) == 0) { - return n; - } - n = n->nextSibling; - } - - return NULL; -} - -static BOOL rootfs_mkdir(FileSystemNode *node, const char *name, uint32 flags) { - FileSystemNode *n = node->firstChild; - while (NULL != n) { - if (strcmp(name, n->name) == 0) { - return FALSE; - } - n = n->nextSibling; - } - - FileSystemNode* newNode = (FileSystemNode*)kmalloc(sizeof(FileSystemNode)); - memset((uint8*)newNode, 0, sizeof(FileSystemNode)); - strcpy(newNode->name, name); - newNode->nodeType = FT_Directory; - newNode->open = rootfs_open; - newNode->close = rootfs_close; - newNode->readdir = rootfs_readdir; - newNode->finddir = rootfs_finddir; - newNode->mkdir = rootfs_mkdir; - newNode->parent = node; - - if (node->firstChild == NULL) { - node->firstChild = newNode; - } - else { - FileSystemNode *n = node->firstChild; - while (NULL != n->nextSibling) { - n = n->nextSibling; - } - n->nextSibling = newNode; - } - - return TRUE; -} - |