Merge branch 'master' of git://cadel.mutabah.net/acess2
[tpg/acess2.git] / KernelLand / Modules / Filesystems / InitRD / main.c
index 02af043..c86c512 100644 (file)
@@ -17,9 +17,9 @@ extern tVFS_Node * const      gInitRD_FileList[];
 tVFS_Node      *InitRD_InitDevice(const char *Device, const char **Arguments);
 void   InitRD_Unmount(tVFS_Node *Node);
 tVFS_Node      *InitRD_GetNodeFromINode(tVFS_Node *Root, Uint64 Inode);
-size_t InitRD_ReadFile(tVFS_Node *Node, off_t Offset, size_t Size, void *Buffer);
-char   *InitRD_ReadDir(tVFS_Node *Node, int ID);
-tVFS_Node      *InitRD_FindDir(tVFS_Node *Node, const char *Name);
+size_t InitRD_ReadFile(tVFS_Node *Node, off_t Offset, size_t Size, void *Buffer, Uint Flags);
+ int   InitRD_ReadDir(tVFS_Node *Node, int ID, char Dest[FILENAME_MAX]);
+tVFS_Node      *InitRD_FindDir(tVFS_Node *Node, const char *Name, Uint Flags);
 void   InitRD_DumpDir(tVFS_Node *Node, int Indent);
 
 // === GLOBALS ===
@@ -43,7 +43,6 @@ tVFS_NodeType gInitRD_FileType = {
  */
 int InitRD_Install(char **Arguments)
 {
-       Log_Notice("InitRD", "Installed");
        VFS_AddDriver( &gInitRD_FSInfo );
        
        return MODULE_ERR_OK;
@@ -57,7 +56,6 @@ tVFS_Node *InitRD_InitDevice(const char *Device, const char **Arguments)
        #if DUMP_ON_MOUNT
        InitRD_DumpDir( &gInitRD_RootNode, 0 );
        #endif
-       Log_Notice("InitRD", "Mounted (%i files)", giInitRD_NumFiles);
        return &gInitRD_RootNode;
 }
 
@@ -79,7 +77,7 @@ tVFS_Node *InitRD_GetNodeFromINode(tVFS_Node *Root, Uint64 Inode)
 /**
  * \brief Read from a file
  */
-size_t InitRD_ReadFile(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)
+size_t InitRD_ReadFile(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags)
 {
        if(Offset > Node->Size)
                return 0;
@@ -94,20 +92,21 @@ size_t InitRD_ReadFile(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffe
 /**
  * \brief Read from a directory
  */
-char *InitRD_ReadDir(tVFS_Node *Node, int ID)
+int InitRD_ReadDir(tVFS_Node *Node, int ID, char Dest[FILENAME_MAX])
 {
        tInitRD_File    *dir = Node->ImplPtr;
        
        if(ID >= Node->Size)
-               return NULL;
+               return -EINVAL;
        
-       return strdup(dir[ID].Name);
+       strncpy(Dest, dir[ID].Name, FILENAME_MAX);
+       return 0;
 }
 
 /**
  * \brief Find an element in a directory
  */
-tVFS_Node *InitRD_FindDir(tVFS_Node *Node, const char *Name)
+tVFS_Node *InitRD_FindDir(tVFS_Node *Node, const char *Name, Uint Flags)
 {
         int    i;
        tInitRD_File    *dir = Node->ImplPtr;

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