X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=AcessNative%2Facesskernel_src%2Fnativefs.c;h=65e874d1be1cfff09fc9a7f1c8e6672d6d207d6b;hb=4c78a1bdd506cda6cda27ee342165c7dfa7ecdc2;hp=af25e3c34dece4b10b0ceabf0554beee4e8a11f2;hpb=36b950d17b828c7cd2e5e9dbe5fb4cbded89889c;p=tpg%2Facess2.git diff --git a/AcessNative/acesskernel_src/nativefs.c b/AcessNative/acesskernel_src/nativefs.c index af25e3c3..65e874d1 100644 --- a/AcessNative/acesskernel_src/nativefs.c +++ b/AcessNative/acesskernel_src/nativefs.c @@ -5,7 +5,7 @@ * nativefs.c * - Host filesystem access */ -#define DEBUG 1 +#define DEBUG 0 #define off_t _acess_off_t #define sprintf _acess_sprintf #include // Acess @@ -154,11 +154,18 @@ tVFS_Node *NativeFS_FindDir(tVFS_Node *Node, const char *Name) else { LOG("File"); - baseRet.Inode = (Uint64)(tVAddr) fopen(path, "r+"); + FILE *fp = fopen(path, "r+"); + if( !fp ) { + Log_Error("NativeFS", "fopen of '%s' failed: %s", path, strerror(errno)); + free(path); + LEAVE('n'); + return NULL; + } + baseRet.Inode = (Uint64)(tVAddr) fp; baseRet.Type = &gNativeFS_FileNodeType; - fseek( (FILE*)(tVAddr)baseRet.Inode, 0, SEEK_END ); - baseRet.Size = ftell( (FILE*)(tVAddr)baseRet.Inode ); + fseek( fp, 0, SEEK_END ); + baseRet.Size = ftell( fp ); } // Create new node @@ -205,8 +212,9 @@ size_t NativeFS_Read(tVFS_Node *Node, _acess_off_t Offset, size_t Length, void * LEAVE('i', 0); return 0; } - LEAVE('-'); - return fread( Buffer, 1, Length, (FILE *)(tVAddr)Node->Inode ); + size_t ret = fread( Buffer, 1, Length, (FILE *)(tVAddr)Node->Inode ); + LEAVE('x', ret); + return ret; } size_t NativeFS_Write(tVFS_Node *Node, _acess_off_t Offset, size_t Length, const void *Buffer)