Blob
1 /* Copyright (C) 2003 Russ Cox, Massachusetts Institute of Technology */2 /* See COPYRIGHT */4 #include <u.h>5 #include <libc.h>6 #include <fcall.h>7 #include <9pclient.h>8 #include "fsimpl.h"10 int11 fsdirwstat(CFsys *fs, char *name, Dir *d)12 {13 int n;14 CFid *fid;16 if((fid = _fswalk(fs->root, name)) == nil)17 return -1;19 n = fsdirfwstat(fid, d);20 fsclose(fid);21 return n;22 }24 int25 fsdirfwstat(CFid *fid, Dir *d)26 {27 uchar *a;28 int n, nn;29 Fcall tx, rx;31 n = sizeD2M(d);32 a = malloc(n);33 if(a == nil)34 return -1;35 nn = convD2M(d, a, n);36 if(n != nn){37 werrstr("convD2M and sizeD2M disagree");38 free(a);39 return -1;40 }42 tx.type = Twstat;43 tx.fid = fid->fid;44 tx.stat = a;45 tx.nstat = n;46 n = _fsrpc(fid->fs, &tx, &rx, 0);47 free(a);48 return n;49 }