#include #include #include /* required by lib9p */ #include #include /* required by lib9p */ #include<9p.h> char *srcdir; static void fsattach(Req *r) { r->fid->qid = (Qid){0, 0, QTDIR}; r->ofcall.qid = r->fid->qid; respond(r, nil); } static void fscreate(Req *r) { } static void fsread(Req *r) { } static char * fswalk1(Fid *fid, char *name, Qid *qid) { return nil; } static char * fsclone(Fid *fid, Fid *newfid) { return nil; } static void fsstat(Req *r) { } static void fsremove(Req *r) { } static void freefid(Fid *fid) { } static Srv sfs = { .attach = fsattach, .create = fscreate, .remove = fsremove, .read = fsread, .write = nil, .walk1 = fswalk1, .clone = fsclone, .stat = fsstat, .destroyfid = freefid, }; static void usage(void) { fprint(2, "usage: %s -c srcdir [-D] [-s srv] [-m mnt]\n", argv0); fprint(2, " srcdir: directory with source files\n"); threadexitsall("usage"); } void threadmain(int argc, char **argv) { char *mnt; char *srv; srv = nil; mnt = "/mnt/sitefs"; srcdir = nil; ARGBEGIN{ case 'D': chatty9p++; break; case 's': srv = EARGF(usage()); break; case 'm': mnt = EARGF(usage()); break; case 'c': srcdir = EARGF(usage()); break; default: usage(); }ARGEND; if(argc != 0 || srcdir == nil) usage(); threadpostmountsrv(&sfs, srv, mnt, MREPL|MCREATE); threadexits(nil); }