diff options
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*); |