AcessNative - Fixing for recent kernel changes
[tpg/acess2.git] / AcessNative / acesskernel_src / nativefs.c
index ca2f7df..8490dd1 100644 (file)
@@ -33,6 +33,13 @@ char *NativeFS_ReadDir(tVFS_Node *Node, int Position);
 Uint64 NativeFS_Read(tVFS_Node *Node, Uint64 Offset, Uint64 Length, void *Buffer);\r
 \r
 // === GLOBALS ===\r
+tVFS_NodeType  gNativeFS_FileNodeType = {\r
+       .Read = NativeFS_Read\r
+};\r
+tVFS_NodeType  gNativeFS_DirNodeType = {\r
+       .FindDir = NativeFS_FindDir,\r
+       .ReadDir = NativeFS_ReadDir,\r
+};\r
 tVFS_Driver    gNativeFS_Driver = {\r
        "nativefs", 0,\r
        NativeFS_Mount, NativeFS_Unmount,\r
@@ -70,9 +77,8 @@ tVFS_Node *NativeFS_Mount(const char *Device, const char **Arguments)
        ret->ImplInt = strlen(ret->Data);\r
        ret->ImplPtr = info;\r
        ret->Inode = (Uint64)dp;\r
-       \r
-       ret->FindDir = NativeFS_FindDir;\r
-       ret->ReadDir = NativeFS_ReadDir;\r
+\r
+       ret->Type = &gNativeFS_DirNodeType;     \r
        \r
        return ret;\r
 }\r
@@ -124,8 +130,7 @@ tVFS_Node *NativeFS_FindDir(tVFS_Node *Node, const char *Name)
        {\r
                LOG("Directory");\r
                baseRet.Inode = (Uint64) opendir(path);\r
-               baseRet.FindDir = NativeFS_FindDir;\r
-               baseRet.ReadDir = NativeFS_ReadDir;\r
+               baseRet.Type = &gNativeFS_DirNodeType;\r
                baseRet.Flags |= VFS_FFLAG_DIRECTORY;\r
                baseRet.Size = -1;\r
        }\r
@@ -133,7 +138,7 @@ tVFS_Node *NativeFS_FindDir(tVFS_Node *Node, const char *Name)
        {\r
                LOG("File");\r
                baseRet.Inode = (Uint64) fopen(path, "r+");\r
-               baseRet.Read = NativeFS_Read;\r
+               baseRet.Type = &gNativeFS_FileNodeType;\r
                \r
                fseek( (FILE*)(tVAddr)baseRet.Inode, 0, SEEK_END );\r
                baseRet.Size = ftell( (FILE*)(tVAddr)baseRet.Inode );\r

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