X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fvfs%2Ffs%2Froot.c;h=7a1dade34f10861bc40d805f96b6c647b0ebbda6;hb=47e9dfd89189fc6b150bd6b20229cb047c7e0858;hp=e035fd7b9f66e328e97cf322577d4004ceab0f9e;hpb=4d166a859db826e94382e6222d5aa4d14ef1d3be;p=tpg%2Facess2.git diff --git a/Kernel/vfs/fs/root.c b/Kernel/vfs/fs/root.c index e035fd7b..7a1dade3 100644 --- a/Kernel/vfs/fs/root.c +++ b/Kernel/vfs/fs/root.c @@ -9,7 +9,7 @@ #define MAX_FILES 64 // === PROTOTYPES === -tVFS_Node *Root_InitDevice(char *Device, char *Options); +tVFS_Node *Root_InitDevice(char *Device, char **Options); int Root_MkNod(tVFS_Node *Node, char *Name, Uint Flags); tVFS_Node *Root_FindDir(tVFS_Node *Node, char *Name); char *Root_ReadDir(tVFS_Node *Node, int Pos); @@ -19,7 +19,9 @@ tRamFS_File *Root_int_AllocFile(); // === GLOBALS === tVFS_Driver gRootFS_Info = { - "rootfs", 0, Root_InitDevice, + "rootfs", 0, + Root_InitDevice, + NULL, // Unmount NULL }; tRamFS_File RootFS_Files[MAX_FILES]; @@ -31,10 +33,10 @@ tVFS_ACL RootFS_ACLs[3] = { // === CODE === /** - * \fn tVFS_Node *Root_InitDevice(char *Device, char *Options) + * \fn tVFS_Node *Root_InitDevice(char *Device, char **Options) * \brief Initialise the root filesystem */ -tVFS_Node *Root_InitDevice(char *Device, char *Options) +tVFS_Node *Root_InitDevice(char *Device, char **Options) { tRamFS_File *root; if(strcmp(Device, "root") != 0) { @@ -71,12 +73,15 @@ int Root_MkNod(tVFS_Node *Node, char *Name, Uint Flags) tRamFS_File *child = parent->Data.FirstChild; tRamFS_File *prev = (tRamFS_File *) &parent->Data.FirstChild; - Log("Root_MkNod: (Node=%p, Name='%s', Flags=0x%x)", Node, Name, Flags); + ENTER("pNode sName xFlags", Node, Name, Flags); // Find last child, while we're at it, check for duplication for( ; child; prev = child, child = child->Next ) { - if(strcmp(child->Name, Name) == 0) return 0; + if(strcmp(child->Name, Name) == 0) { + LEAVE('i', 0); + return 0; + } } child = Root_int_AllocFile(); @@ -108,6 +113,7 @@ int Root_MkNod(tVFS_Node *Node, char *Name, Uint Flags) parent->Node.Size ++; + LEAVE('i', 1); return 1; } @@ -142,9 +148,9 @@ char *Root_ReadDir(tVFS_Node *Node, int Pos) for( ; child && Pos--; child = child->Next ) ; - if(Pos) return child->Name; + if(Pos) return strdup(child->Name); - return child->Name; + return NULL; } /** @@ -179,12 +185,12 @@ Uint64 Root_Write(tVFS_Node *Node, Uint64 Offset, Uint64 Length, void *Buffer) { void *tmp = realloc( file->Data.Bytes, Offset + Length ); if(tmp == NULL) { - Warning("Root_Write - Increasing buffer size failed\n"); + Warning("Root_Write - Increasing buffer size failed"); return -1; } file->Data.Bytes = tmp; Node->Size = Offset + Length; - Log(" Root_Write: Expanded buffer to %i bytes\n", Node->Size); + //LOG("Expanded buffer to %i bytes", Node->Size); } memcpy(file->Data.Bytes+Offset, Buffer, Length);