X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fvfs%2Fio.c;h=7260df70bebf5212e6562644398fdcfc6fc50fdd;hb=930fe819133ddb444bc6c22df09baf788183f6ad;hp=f2d47ce18f68e551aebf2d6cffe982443b693cd7;hpb=f9c3c4a68ba22b00df9441631a8513198c8859a5;p=tpg%2Facess2.git diff --git a/Kernel/vfs/io.c b/Kernel/vfs/io.c index f2d47ce1..7260df70 100644 --- a/Kernel/vfs/io.c +++ b/Kernel/vfs/io.c @@ -2,22 +2,11 @@ * AcessMicro VFS * - File IO Passthru's */ +#define DEBUG 0 #include #include "vfs.h" #include "vfs_int.h" -#define DEBUG 0 - -#if DEBUG -#else -# undef ENTER -# undef LOG -# undef LEAVE -# define ENTER(...) -# define LOG(...) -# define LEAVE(...) -#endif - // === CODE === /** * \fn Uint64 VFS_Read(int FD, Uint64 Length, void *Buffer) @@ -31,23 +20,15 @@ Uint64 VFS_Read(int FD, Uint64 Length, void *Buffer) ENTER("iFD XLength pBuffer", FD, Length, Buffer); h = VFS_GetHandle(FD); - if(!h) return -1; + if(!h) LEAVE_RET('i', -1); - if( !(h->Mode & VFS_OPENFLAG_READ) || h->Node->Flags & VFS_FFLAG_DIRECTORY ) { - LEAVE('i', -1); - return -1; - } + if( !(h->Mode & VFS_OPENFLAG_READ) || h->Node->Flags & VFS_FFLAG_DIRECTORY ) + LEAVE_RET('i', -1); - if(!h->Node->Read) { - LEAVE('i', 0); - return 0; - } + if(!h->Node->Read) LEAVE_RET('i', 0); ret = h->Node->Read(h->Node, h->Position, Length, Buffer); - if(ret == -1) { - LEAVE('i', -1); - return -1; - } + if(ret == -1) LEAVE_RET('i', -1); h->Position += ret; LEAVE('X', ret); @@ -79,10 +60,10 @@ Uint64 VFS_ReadAt(int FD, Uint64 Offset, Uint64 Length, void *Buffer) } /** - * \fn Uint64 VFS_Write(int FD, Uint64 Length, void *Buffer) + * \fn Uint64 VFS_Write(int FD, Uint64 Length, const void *Buffer) * \brief Read data from a node (file) */ -Uint64 VFS_Write(int FD, Uint64 Length, void *Buffer) +Uint64 VFS_Write(int FD, Uint64 Length, const void *Buffer) { tVFS_Handle *h; Uint64 ret; @@ -95,17 +76,18 @@ Uint64 VFS_Write(int FD, Uint64 Length, void *Buffer) if(!h->Node->Write) return 0; - ret = h->Node->Write(h->Node, h->Position, Length, Buffer); + // TODO: This is a hack, I need to change VFS_Node to have "const void*" + ret = h->Node->Write(h->Node, h->Position, Length, (void*)Buffer); if(ret == -1) return -1; h->Position += ret; return ret; } /** - * \fn Uint64 VFS_WriteAt(int FD, Uint64 Offset, Uint64 Length, void *Buffer) + * \fn Uint64 VFS_WriteAt(int FD, Uint64 Offset, Uint64 Length, const void *Buffer) * \brief Write data to a file at a given offset */ -Uint64 VFS_WriteAt(int FD, Uint64 Offset, Uint64 Length, void *Buffer) +Uint64 VFS_WriteAt(int FD, Uint64 Offset, Uint64 Length, const void *Buffer) { tVFS_Handle *h; Uint64 ret; @@ -117,7 +99,8 @@ Uint64 VFS_WriteAt(int FD, Uint64 Offset, Uint64 Length, void *Buffer) if( h->Node->Flags & VFS_FFLAG_DIRECTORY ) return -1; if(!h->Node->Write) return 0; - ret = h->Node->Write(h->Node, Offset, Length, Buffer); + // TODO: This is a hack, I need to change VFS_Node to have "const void*" + ret = h->Node->Write(h->Node, Offset, Length, (void*)Buffer); if(ret == -1) return -1; return ret; }