Bugfixes and debug cleanup
[tpg/acess2.git] / Kernel / vfs / fs / devfs.c
index 25be490..d396a1f 100644 (file)
@@ -3,23 +3,25 @@
  * Device Filesystem (DevFS)
  * - vfs/fs/devfs.c
  */
-#include <common.h>
+#include <acess.h>
 #include <vfs.h>
 #include <fs_devfs.h>
 
 // === PROTOTYPES ===
  int   DevFS_AddDevice(tDevFS_Driver *Dev);
-tVFS_Node      *DevFS_InitDevice(char *Device, char *Options);
+tVFS_Node      *DevFS_InitDevice(char *Device, char **Options);
 char   *DevFS_ReadDir(tVFS_Node *Node, int Pos);
 tVFS_Node      *DevFS_FindDir(tVFS_Node *Node, char *Name);
 
 // === GLOBALS ===
 tVFS_Driver    gDevFS_Info = {
-       "devfs", 0, DevFS_InitDevice, NULL
+       "devfs", 0, DevFS_InitDevice, NULL, NULL
        };
 tVFS_Node      gDevFS_RootNode = {
+       .Size = 0,
+       .Flags = VFS_FFLAG_DIRECTORY,
        .NumACLs = 1,
-       .ACLs = &gVFS_ACL_EveryoneRW,
+       .ACLs = &gVFS_ACL_EveryoneRX,
        .ReadDir = DevFS_ReadDir,
        .FindDir = DevFS_FindDir
        };
@@ -34,16 +36,16 @@ int DevFS_AddDevice(tDevFS_Driver *Dev)
 {
        Dev->Next = gDevFS_Drivers;
        gDevFS_Drivers = Dev;
-       
+       gDevFS_RootNode.Size ++;
        return giDevFS_NextID++;
 }
 
 /**
- * \fn tVFS_Node *DevFS_InitDevice(char *Device, char *Options)
+ * \fn tVFS_Node *DevFS_InitDevice(char *Device, char **Options)
  * \brief Initialise the DevFS and detect double-mounting, or just do nothing
- * \stub
+ * \note STUB
  */
-tVFS_Node *DevFS_InitDevice(char *Device, char *Options)
+tVFS_Node *DevFS_InitDevice(char *Device, char **Options)
 {
        return &gDevFS_RootNode;
 }
@@ -62,7 +64,7 @@ char *DevFS_ReadDir(tVFS_Node *Node, int Pos)
                dev = dev->Next
                );
        
-       return dev->Name;
+       return strdup(dev->Name);
 }
 
 /**

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