1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
typedef struct Fs Fs;
typedef struct File File;
typedef struct DirEntryEnum DirEntryEnum;
#pragma incomplete Fs
#pragma incomplete File
#pragma incomplete DirEntryEnum
enum
{
STACK = 32*1024,
};
enum
{
// XXX What to do here?
VtMaxLumpSize = 65536,
};
/* modes */
enum {
OReadOnly,
OReadWrite,
OOverWrite,
};
extern char *currfsysname;
extern char *foptname;
void fsClose(Fs*);
int fsEpochLow(Fs*, u32int);
File *fsGetRoot(Fs*);
int fsHalt(Fs*);
Fs *fsOpen(char*, VtConn*, long, int);
int fsRedial(Fs*, char*);
void fsSnapshotCleanup(Fs*, u32int);
int fsSnapshot(Fs*, char*, char*, int);
void fsSnapshotRemove(Fs*);
int fsSync(Fs*);
int fsUnhalt(Fs*);
int fsVac(Fs*, char*, uchar[VtScoreSize]);
void deeClose(DirEntryEnum*);
DirEntryEnum *deeOpen(File*);
int deeRead(DirEntryEnum*, DirEntry*);
int fileClri(File*, char*, char*);
int fileClriPath(Fs*, char*, char*);
File *fileCreate(File*, char*, ulong, char*);
int fileDecRef(File*);
int fileGetDir(File*, DirEntry*);
uvlong fileGetId(File*);
ulong fileGetMcount(File*);
ulong fileGetMode(File*);
File *fileGetParent(File*);
int fileGetSize(File*, uvlong*);
File *fileIncRef(File*);
int fileIsDir(File*);
int fileIsTemporary(File*);
int fileIsAppend(File*);
int fileIsExclusive(File*);
int fileIsRoFs(File*);
int fileIsRoot(File*);
int fileMapBlock(File*, ulong, uchar[VtScoreSize], ulong);
int fileMetaFlush(File*, int);
char *fileName(File *f);
File *fileOpen(Fs*, char*);
int fileRead(File*, void *, int, vlong);
int fileRemove(File*, char*);
int fileSetDir(File*, DirEntry*, char*);
int fileSetQidSpace(File*, u64int, u64int);
int fileSetSize(File*, uvlong);
int fileSync(File*);
int fileTruncate(File*, char*);
File *fileWalk(File*, char*);
File *_fileWalk(File*, char*, int);
int fileWalkSources(File*);
int fileWrite(File*, void *, int, vlong, char*);
|