shithub: fsgen

ref: 447faea42c09161a13f57523a3726dfee294d0e8
dir: /fshandler.inc/

View raw version
static void
fsread(Req *r)
{
	respond(r, nil);
}

static void
fswrite(Req *r)
{
	respond(r, nil);
}

static void
fsstat(Req *r)
{
	uvlong q;
	Filedata *fd;
	// TODO: support multiple parameters
	void (*func)(Req *r);
	
	q = breakqid(r->fid->qid.path);
	
	for (int i = 0; i < Qmax; i++) {
		if (q == i) {
			fd = &filedata[i];
			r->d = fd->dir;
			qidtype = i;
			r->d.qid.path = makeqid(0);
			r->d.qid.vers = 0;
			r->d.qid.type = fd->dir.mode&DMDIR ? QTDIR : QTFILE;
			if (fd->stat) {
				func = fd->stat;
				func(r);
			} else
				respond(r, nil);
			return;
		}
	}
	respond(r, "file not found");
}

static char*
fswalk(Fid *fid, char *name, Qid *qid)
{
	return nil;
}