X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FStorage%2FFDDv2%2Fmain.c;h=f6290d900ec06dc3d23d4bf10931faccd9d1b0dc;hb=fd61b8c2f5e94da0265b3885525beff8e86317f6;hp=bec157ce6d2204874defbd0c096916be925f83d8;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Storage/FDDv2/main.c b/KernelLand/Modules/Storage/FDDv2/main.c index bec157ce..f6290d90 100644 --- a/KernelLand/Modules/Storage/FDDv2/main.c +++ b/KernelLand/Modules/Storage/FDDv2/main.c @@ -21,10 +21,10 @@ int FDD_Install(char **Arguments); int FDD_RegisterFS(void); // --- VFS -char *FDD_ReadDir(tVFS_Node *Node, int pos); + int FDD_ReadDir(tVFS_Node *Node, int pos, char dest[FILENAME_MAX]); tVFS_Node *FDD_FindDir(tVFS_Node *dirNode, const char *Name); int FDD_IOCtl(tVFS_Node *Node, int ID, void *Data); -Uint64 FDD_ReadFS(tVFS_Node *node, Uint64 off, Uint64 len, void *buffer); +size_t FDD_ReadFS(tVFS_Node *node, off_t Offset, size_t Len, void *buffer); // --- Helpers int FDD_int_ReadWriteWithinTrack(int Disk, int Track, int bWrite, size_t Offset, size_t Length, void *Buffer); @@ -111,17 +111,16 @@ int FDD_RegisterFS(void) * \param Pos Position * \return Heap string of node name */ -char *FDD_ReadDir(tVFS_Node *Node, int Pos) +int FDD_ReadDir(tVFS_Node *Node, int Pos, char Dest[FILENAME_MAX]) { - char ret_tpl[2]; if(Pos < 0 || Pos > MAX_DISKS ) - return NULL; + return -ENOENT; if(gaFDD_Disks[Pos].bValid) - return VFS_SKIP; + return 1; - ret_tpl[0] = '0' + Pos; - ret_tpl[1] = '\0'; - return strdup(ret_tpl); + Dest[0] = '0' + Pos; + Dest[1] = '\0'; + return 0; } /** @@ -169,14 +168,14 @@ int FDD_IOCtl(tVFS_Node *Node, int ID, void *Data) * \param Buffer Destination buffer * \return Number of bytes read */ -Uint64 FDD_ReadFS(tVFS_Node *Node, Uint64 Offset, Uint64 Length, void *Buffer) +size_t FDD_ReadFS(tVFS_Node *Node, off_t Offset, size_t Length, void *Buffer) { int disk = Node->Inode; int track; int rem_len; char *dest = Buffer; - ENTER("pNode XOffset XLength pBuffer", Node, Offset, Length, Buffer); + ENTER("pNode XOffset xLength pBuffer", Node, Offset, Length, Buffer); if( Offset > Node->Size ) LEAVE_RET('i', 0); if( Length > Node->Size ) Length = Node->Size;