X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Tools%2FNetTest%2Fvfs_shim.c;fp=Tools%2FNetTest%2Fvfs_shim.c;h=6d420646fa7e3371829cd259cbd4492f4ec83b4d;hb=50a98c40481c6d1df267f4631228e9a4d107fe74;hp=97ac4db1da257c7b50113b7fdea06408cfb2a2be;hpb=7b64f5e7f00e445a5637e9e3289a1332a14d28e5;p=tpg%2Facess2.git diff --git a/Tools/NetTest/vfs_shim.c b/Tools/NetTest/vfs_shim.c index 97ac4db1..6d420646 100644 --- a/Tools/NetTest/vfs_shim.c +++ b/Tools/NetTest/vfs_shim.c @@ -10,84 +10,6 @@ #include // === CODE === -int VFS_SelectNode(tVFS_Node *Node, int Type, tTime *Timeout, const char *Name) -{ - tThread *us = Proc_GetCurThread(); - - int ret = 0; - - Threads_ClearEvent(THREAD_EVENT_VFS); - - if( Type & VFS_SELECT_READ ) { - Node->ReadThreads = (void*)us; - if(Node->DataAvaliable) ret |= VFS_SELECT_READ; - } - if( Type & VFS_SELECT_WRITE ) { - Node->WriteThreads = (void*)us; - if(!Node->BufferFull) ret |= VFS_SELECT_WRITE; - } - if( Type & VFS_SELECT_ERROR ) { - Node->ErrorThreads = (void*)us; - if(Node->ErrorOccurred) ret |= VFS_SELECT_ERROR; - } - - if( !ret ) - { - // TODO: Timeout - Threads_WaitEvents(THREAD_EVENT_VFS); - } - - if( Type & VFS_SELECT_READ ) { - Node->ReadThreads = NULL; - if(Node->DataAvaliable) ret |= VFS_SELECT_READ; - } - if( Type & VFS_SELECT_WRITE ) { - Node->WriteThreads = NULL; - if(!Node->BufferFull) ret |= VFS_SELECT_WRITE; - } - if( Type & VFS_SELECT_ERROR ) { - Node->ErrorThreads = NULL; - if(Node->ErrorOccurred) ret |= VFS_SELECT_ERROR; - } - return ret; -} - -int VFS_MarkAvaliable(tVFS_Node *Node, BOOL bAvail) -{ - Node->DataAvaliable = bAvail; - if( Node->DataAvaliable && Node->ReadThreads ) - Threads_PostEvent( (void*)Node->ReadThreads, THREAD_EVENT_VFS ); - return 0; -} - -int VFS_MarkError(tVFS_Node *Node, BOOL bError) -{ - Node->ErrorOccurred = bError; - if( Node->ErrorOccurred && Node->ErrorThreads ) - Threads_PostEvent( (void*)Node->ErrorThreads, THREAD_EVENT_VFS ); - return 0; -} - -int VFS_MarkFull(tVFS_Node *Node, BOOL bError) -{ - Node->BufferFull = bError; - if( !Node->BufferFull && Node->WriteThreads ) - Threads_PostEvent( (void*)Node->WriteThreads, THREAD_EVENT_VFS ); - return 0; -} - - -#if 0 -int VFS_Open(const char *Path, Uint Flags) -{ - return -1; -} - -void VFS_Close(int FD) -{ -} -#endif - int VFS_AllocHandle(int bIsUser, tVFS_Node *Node, int Mode) { const int maxfd = *Threads_GetMaxFD(); @@ -122,3 +44,18 @@ tVFS_Handle *VFS_GetHandle(int FD) return &handles[FD]; } + +int VFS_SetHandle(int FD, tVFS_Node *Node, int Mode) +{ + const int maxfd = *Threads_GetMaxFD(); + tVFS_Handle *handles = *Threads_GetHandlesPtr(); + if( !handles ) + return -1; + + if( FD < 0 || FD >= maxfd ) + return -1; + + handles[FD].Node = Node; + handles[FD].Mode = Mode; + return FD; +}