X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Design%20Notes%2FVFS%20-%20Select.txt;h=70e1993cd5a9bcc8c12dbf4c8c161bf025d4b9f2;hb=ec613add227a8e9a8a71f7631c8e8d09140d246a;hp=cceef5ce39eecbf267ad758b6a6c8e202c6891b6;hpb=58d2f56cd5211d93b4984e1f66a8aba5f0599942;p=tpg%2Facess2.git diff --git a/Design Notes/VFS - Select.txt b/Design Notes/VFS - Select.txt index cceef5ce..70e1993c 100644 --- a/Design Notes/VFS - Select.txt +++ b/Design Notes/VFS - Select.txt @@ -10,3 +10,16 @@ The VFS function select() - Maintains a list of processes on each node (if select has been called on that node) - Each process maybe has a semaphore on it (to use the semaphore code to maintain the process list) > Could maybe use a mutex instead + + +VFS_Select(int, fd_set* read, fd_set* write, fd_set* except) + +read is the set of sockets that we are waiting to read from +write " " " be able to write to +except " " " for possible errors on + + +Hence, each VFS_Node has three listener lists (or just pointers) +- One for when data is avaliable +- One for when space is avaliable for writing +- One for when an error occurs (closed pipe, etc ...)