Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <fcall.h>
4 #include <9pclient.h>
5 #include "fsimpl.h"
7 int
8 fsaccess(CFsys *fsys, char *name, int mode)
9 {
10 CFid *fid;
11 Dir *db;
12 static char omode[] = {
13 0,
14 OEXEC,
15 OWRITE,
16 ORDWR,
17 OREAD,
18 OEXEC, /* only approximate */
19 ORDWR,
20 ORDWR /* only approximate */
21 };
23 if(mode == AEXIST){
24 db = fsdirstat(fsys, name);
25 free(db);
26 if(db != nil)
27 return 0;
28 return -1;
29 }
30 fid = fsopen(fsys, name, omode[mode&7]);
31 if(fid != nil){
32 fsclose(fid);
33 return 0;
34 }
35 return -1;
36 }