diff options
author | rsc <devnull@localhost> | 2005-01-04 21:22:40 +0000 |
---|---|---|
committer | rsc <devnull@localhost> | 2005-01-04 21:22:40 +0000 |
commit | 46f79934b79ef526ed42bbe5a565e6b5d884d24a (patch) | |
tree | d1e663f7d3b2b328f03aeb34fdb3f4006aa97ec0 /src/lib9pclient/fsimpl.h | |
parent | 5ba841dffa1f6cda712ebcff27c55c9d0a672c67 (diff) | |
download | plan9port-46f79934b79ef526ed42bbe5a565e6b5d884d24a.tar.gz plan9port-46f79934b79ef526ed42bbe5a565e6b5d884d24a.tar.bz2 plan9port-46f79934b79ef526ed42bbe5a565e6b5d884d24a.zip |
lib9pclient is the new libfs
Diffstat (limited to 'src/lib9pclient/fsimpl.h')
-rw-r--r-- | src/lib9pclient/fsimpl.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/lib9pclient/fsimpl.h b/src/lib9pclient/fsimpl.h new file mode 100644 index 00000000..9c5c5553 --- /dev/null +++ b/src/lib9pclient/fsimpl.h @@ -0,0 +1,47 @@ +/* Copyright (C) 2003 Russ Cox, Massachusetts Institute of Technology */ +/* See COPYRIGHT */ + +#include <thread.h> + +typedef struct Queue Queue; +Queue *_fsqalloc(void); +int _fsqsend(Queue*, void*); +void *_fsqrecv(Queue*); +void _fsqhangup(Queue*); +void *_fsnbqrecv(Queue*); + +#include <mux.h> +struct CFsys +{ + char version[20]; + int msize; + QLock lk; + int fd; + int ref; + Mux mux; + CFid *root; + Queue *txq; + Queue *rxq; + CFid *freefid; + int nextfid; + Ioproc *iorecv; + Ioproc *iosend; +}; + +struct CFid +{ + int fid; + int mode; + CFid *next; + QLock lk; + CFsys *fs; + Qid qid; + vlong offset; +}; + +void _fsdecref(CFsys*); +void _fsputfid(CFid*); +CFid *_fsgetfid(CFsys*); + +int _fsrpc(CFsys*, Fcall*, Fcall*, void**); +CFid *_fswalk(CFid*, char*); |