use 9pclient instead of fs

This commit is contained in:
rsc 2005-01-04 22:09:51 +00:00
parent 3f54e7c8a4
commit eb423b5cc0

View file

@ -2,7 +2,7 @@
#include <signal.h> #include <signal.h>
#include <libc.h> #include <libc.h>
#include <fcall.h> #include <fcall.h>
#include <fs.h> #include <9pclient.h>
#include <thread.h> #include <thread.h>
char *addr; char *addr;
@ -72,12 +72,12 @@ threadmain(int argc, char **argv)
usage(); usage();
} }
Fsys* CFsys*
xparse(char *name, char **path) xparse(char *name, char **path)
{ {
int fd; int fd;
char *p; char *p;
Fsys *fs; CFsys *fs;
if(addr == nil){ if(addr == nil){
p = strchr(name, '/'); p = strchr(name, '/');
@ -100,24 +100,11 @@ xparse(char *name, char **path)
return fs; return fs;
} }
Fid* CFid*
xwalk(char *name)
{
Fid *fid;
Fsys *fs;
fs = xparse(name, &name);
fid = fswalk(fsroot(fs), name);
if(fid == nil)
sysfatal("fswalk %s: %r", name);
return fid;
}
Fid*
xopen(char *name, int mode) xopen(char *name, int mode)
{ {
Fid *fid; CFid *fid;
Fsys *fs; CFsys *fs;
fs = xparse(name, &name); fs = xparse(name, &name);
fid = fsopen(fs, name, mode); fid = fsopen(fs, name, mode);
@ -129,7 +116,7 @@ xopen(char *name, int mode)
int int
xopenfd(char *name, int mode) xopenfd(char *name, int mode)
{ {
Fsys *fs; CFsys *fs;
fs = xparse(name, &name); fs = xparse(name, &name);
return fsopenfd(fs, name, mode); return fsopenfd(fs, name, mode);
@ -140,7 +127,7 @@ xread(int argc, char **argv)
{ {
char buf[1024]; char buf[1024];
int n; int n;
Fid *fid; CFid *fid;
ARGBEGIN{ ARGBEGIN{
default: default:
@ -186,7 +173,7 @@ xwrite(int argc, char **argv)
{ {
char buf[1024]; char buf[1024];
int n, did; int n, did;
Fid *fid; CFid *fid;
ARGBEGIN{ ARGBEGIN{
default: default:
@ -240,7 +227,8 @@ void
xstat(int argc, char **argv) xstat(int argc, char **argv)
{ {
Dir *d; Dir *d;
Fid *fid; CFsys *fs;
char *name;
ARGBEGIN{ ARGBEGIN{
default: default:
@ -250,9 +238,10 @@ xstat(int argc, char **argv)
if(argc != 1) if(argc != 1)
usage(); usage();
fid = xwalk(argv[0]); name = argv[0];
if((d = fsdirfstat(fid)) == 0) fs = xparse(name, &name);
sysfatal("dirfstat: %r"); if((d = fsdirstat(fs, name)) == 0)
sysfatal("dirstat: %r");
fmtinstall('D', dirfmt); fmtinstall('D', dirfmt);
fmtinstall('M', dirmodefmt); fmtinstall('M', dirmodefmt);
print("%D\n", d); print("%D\n", d);