233
|
1 typedef struct fs<Type,Impl> {
|
|
2 union Data* fs;
|
|
3 struct superblock* sb;
|
|
4 uint dev;
|
|
5 short type;
|
|
6 struct inode* ip;
|
|
7 struct stat* st;
|
|
8 char* dst;
|
|
9 uint off;
|
|
10 uint n;
|
|
11 const char* s;
|
|
12 const char* t;
|
|
13 struct inode* dp;
|
|
14 char* name;
|
|
15 uint* poff;
|
|
16 uint inum;
|
|
17 char* path;
|
236
|
18 char* src;
|
247
|
19 int namex_val;
|
233
|
20
|
235
|
21 __code readsb(Impl* fs, uint dev, struct superblock* sb, __code next(...));
|
233
|
22 __code iinit(Impl* fs, __code next(...));
|
|
23 __code ialloc(Impl* fs, uint dev, short type, __code next(...));
|
|
24 __code iupdate(Impl* fs, struct inode* ip, __code next(...));
|
|
25 __code idup(Impl* fs, struct inode* ip, __code next(...));
|
|
26 __code ilock(Impl* fs, struct inode* ip, __code next(...));
|
|
27 __code iunlock(Impl* fs, struct inode* ip, __code next(...));
|
|
28 __code iput(Impl* fs, struct inode* ip, __code next(...));
|
|
29 __code iunlockput(Impl* fs, struct inode* ip, __code next(...));
|
|
30 __code stati(Impl* fs , struct inode* ip, struct stat* st, __code next(...));
|
|
31 __code readi(Impl* fs, struct inode* ip, char* dst, uint off, uint n, __code next(...));
|
|
32 __code writei(Impl* fs, struct inode* ip, char* src, uint off, uint n, __code next(...));
|
|
33 __code namecmp(Impl* fs, const char* s, const char* t, __code next(...));
|
|
34 __code dirlookup(struct inode* dp, char* name, uint* poff, __code next(...));
|
235
|
35 __code dirlink(Impl* fs, struct inode* dp, char* name, uint inum, __code next(...));
|
247
|
36 __code namei(Impl* fs, char* path, __code next(int namex_val, ...));
|
|
37 __code nameiparent(Impl* fs, char* path, char* name, __code next(int namex_val, ...));
|
236
|
38 __code next(...);
|
233
|
39 } fs;
|