xref: /plan9-contrib/sys/src/cmd/fossil/fs.h (revision ec59a3ddbfceee0efe34584c2c9981a5e5ff1ec4)
1 typedef struct Fs Fs;
2 typedef struct File File;
3 typedef struct DirEntryEnum DirEntryEnum;
4 
5 #pragma incomplete Fs
6 #pragma incomplete File
7 #pragma incomplete DirEntryEnum
8 
9 /* modes */
10 
11 enum {
12 	OReadOnly,
13 	OReadWrite,
14 	OOverWrite,
15 };
16 
17 Fs *fsOpen(char*, VtSession*, long, int);
18 void fsClose(Fs*);
19 File *fsGetRoot(Fs*);
20 int fsSnapshot(Fs*, char*, char*, int);
21 void fsSnapshotRemove(Fs*);
22 void fsSnapshotCleanup(Fs*, u32int);
23 int fsSync(Fs*);
24 int fsHalt(Fs*);
25 int fsUnhalt(Fs*);
26 int fsVac(Fs*, char*, uchar[VtScoreSize]);
27 int fsRedial(Fs*, char*);
28 int fsEpochLow(Fs*, u32int);
29 
30 File *fileOpen(Fs*, char*);
31 File *fileCreate(File*, char*, ulong, char*);
32 File *fileWalk(File*, char*);
33 File *_fileWalk(File*, char*, int);
34 int fileRemove(File*, char*);
35 int fileClri(File*, char*, char*);
36 int fileClriPath(Fs*, char*, char*);
37 int fileRead(File*, void *, int, vlong);
38 int fileWrite(File*, void *, int, vlong, char*);
39 int fileMapBlock(File*, ulong, uchar[VtScoreSize], ulong);
40 uvlong fileGetId(File*);
41 ulong fileGetMcount(File*);
42 int fileIsDir(File*);
43 int fileGetSize(File*, uvlong*);
44 int fileGetDir(File*, DirEntry*);
45 int fileSetDir(File*, DirEntry*, char*);
46 int fileSetSize(File*, uvlong);
47 File *fileGetParent(File*);
48 int fileSync(File*);
49 File *fileIncRef(File*);
50 int fileDecRef(File*);
51 int fileIsRoot(File*);
52 int fileMetaFlush(File*, int);
53 int fileSetQidSpace(File*, u64int, u64int);
54 int fileTruncate(File*, char*);
55 int fileIsRoFs(File*);
56 ulong fileGetMode(File*);
57 DirEntryEnum *deeOpen(File*);
58 int deeRead(DirEntryEnum*, DirEntry*);
59 void deeClose(DirEntryEnum*);
60 int fileWalkSources(File*);
61