Blob
1 /* Copyright (C) 2003 Russ Cox, Massachusetts Institute of Technology */2 /* See COPYRIGHT */4 #include <thread.h>6 typedef struct Queue Queue;7 Queue *_fsqalloc(void);8 int _fsqsend(Queue*, void*);9 void *_fsqrecv(Queue*);10 void _fsqhangup(Queue*);11 void *_fsnbqrecv(Queue*);13 #include <mux.h>14 struct CFsys15 {16 char version[20];17 int dotu;18 int msize;19 QLock lk;20 int fd;21 int ref;22 Mux mux;23 CFid *root;24 Queue *txq;25 Queue *rxq;26 CFid *freefid;27 int nextfid;28 Ioproc *iorecv;29 Ioproc *iosend;30 };32 struct CFid33 {34 int fid;35 int mode;36 CFid *next;37 QLock lk;38 CFsys *fs;39 Qid qid;40 vlong offset;41 };43 void _fsdecref(CFsys*);44 void _fsputfid(CFid*);45 CFid *_fsgetfid(CFsys*);47 int _fsrpc(CFsys*, Fcall*, Fcall*, void**);48 CFid *_fswalk(CFid*, char*);