Kernel - Added 'Flags' param to VFS Read/Write/FindDir
[tpg/acess2.git] / KernelLand / Modules / Filesystems / FAT / fat.c
index fc7d21e..1411902 100644 (file)
@@ -33,9 +33,9 @@ void  FAT_Unmount(tVFS_Node *Node);
 // --- Helpers\r
  int   FAT_int_GetAddress(tVFS_Node *Node, Uint64 Offset, Uint64 *Addr, Uint32 *Cluster);\r
 // --- File IO\r
-size_t FAT_Read(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer);\r
+size_t FAT_Read(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags);\r
 #if SUPPORT_WRITE\r
-size_t FAT_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer);\r
+size_t FAT_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer, Uint Flags);\r
 #endif\r
 void   FAT_CloseFile(tVFS_Node *node);\r
 \r
@@ -393,7 +393,7 @@ int FAT_int_GetAddress(tVFS_Node *Node, Uint64 Offset, Uint64 *Addr, Uint32 *Clu
 /**\r
  * \brief Reads data from a specified file\r
  */\r
-size_t FAT_Read(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)\r
+size_t FAT_Read(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer, Uint Flags)\r
 {\r
         int    preSkip, count;\r
        Uint64  final_bytes;\r
@@ -435,6 +435,8 @@ size_t FAT_Read(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)
                }\r
        }\r
 \r
+       // TODO: Handle (Flags & VFS_IOFLAG_NOBLOCK)\r
+\r
        // Reading from within one cluster\r
        if((int)Offset + (int)Length <= bpc)\r
        {\r
@@ -512,7 +514,7 @@ size_t FAT_Read(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer)
  * \param Length       Size of data to write\r
  * \param Buffer       Data source\r
  */\r
-size_t FAT_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer)\r
+size_t FAT_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffer, Uint Flags)\r
 {\r
        tFAT_VolInfo    *disk = Node->ImplPtr;\r
        char    tmpBuf[disk->BytesPerCluster];\r
@@ -522,6 +524,7 @@ size_t FAT_Write(tVFS_Node *Node, off_t Offset, size_t Length, const void *Buffe
        off_t   original_offset = Offset;\r
        \r
        if(Offset > Node->Size) return 0;\r
+       // TODO: Handle (Flags & VFS_IOFLAG_NOBLOCK)\r
        \r
        ENTER("pNode Xoffset xlength pbuffer", Node, Offset, Length, Buffer);\r
        \r

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