xref: /plan9/sys/src/cmd/fossil/fs.h (revision 6bbfed0d85c6d7248503ef0614d0f1e40438b735)
15e96a66cSDavid du Colombier typedef struct Fs Fs;
25e96a66cSDavid du Colombier typedef struct File File;
35e96a66cSDavid du Colombier typedef struct DirEntryEnum DirEntryEnum;
45e96a66cSDavid du Colombier 
512fd1c83SDavid du Colombier #pragma incomplete Fs
612fd1c83SDavid du Colombier #pragma incomplete File
712fd1c83SDavid du Colombier #pragma incomplete DirEntryEnum
812fd1c83SDavid du Colombier 
95e96a66cSDavid du Colombier /* modes */
105e96a66cSDavid du Colombier 
115e96a66cSDavid du Colombier enum {
125e96a66cSDavid du Colombier 	OReadOnly,
135e96a66cSDavid du Colombier 	OReadWrite,
145e96a66cSDavid du Colombier 	OOverWrite,
155e96a66cSDavid du Colombier };
165e96a66cSDavid du Colombier 
1723e56024SDavid du Colombier extern char *currfsysname;
181bdadbfaSDavid du Colombier extern char *foptname;
1923e56024SDavid du Colombier 
205e96a66cSDavid du Colombier void	fsClose(Fs*);
2100580da5SDavid du Colombier int	fsEpochLow(Fs*, u32int);
225e96a66cSDavid du Colombier File	*fsGetRoot(Fs*);
2300580da5SDavid du Colombier int	fsHalt(Fs*);
2400580da5SDavid du Colombier Fs	*fsOpen(char*, VtSession*, long, int);
2500580da5SDavid du Colombier int	fsRedial(Fs*, char*);
2600580da5SDavid du Colombier void	fsSnapshotCleanup(Fs*, u32int);
27c3c4501eSDavid du Colombier int	fsSnapshot(Fs*, char*, char*, int);
28dc5a79c1SDavid du Colombier void	fsSnapshotRemove(Fs*);
295e96a66cSDavid du Colombier int	fsSync(Fs*);
3081cf8742SDavid du Colombier int	fsUnhalt(Fs*);
315e96a66cSDavid du Colombier int	fsVac(Fs*, char*, uchar[VtScoreSize]);
325e96a66cSDavid du Colombier 
3300580da5SDavid du Colombier void	deeClose(DirEntryEnum*);
345e96a66cSDavid du Colombier DirEntryEnum *deeOpen(File*);
355e96a66cSDavid du Colombier int	deeRead(DirEntryEnum*, DirEntry*);
3600580da5SDavid du Colombier int	fileClri(File*, char*, char*);
3700580da5SDavid du Colombier int	fileClriPath(Fs*, char*, char*);
3800580da5SDavid du Colombier File	*fileCreate(File*, char*, ulong, char*);
3900580da5SDavid du Colombier int	fileDecRef(File*);
4000580da5SDavid du Colombier int	fileGetDir(File*, DirEntry*);
4100580da5SDavid du Colombier uvlong	fileGetId(File*);
4200580da5SDavid du Colombier ulong	fileGetMcount(File*);
4300580da5SDavid du Colombier ulong	fileGetMode(File*);
4400580da5SDavid du Colombier File	*fileGetParent(File*);
4500580da5SDavid du Colombier int	fileGetSize(File*, uvlong*);
4600580da5SDavid du Colombier File	*fileIncRef(File*);
4700580da5SDavid du Colombier int	fileIsDir(File*);
48*6bbfed0dSDavid du Colombier int	fileIsTemporary(File*);
49*6bbfed0dSDavid du Colombier int	fileIsAppend(File*);
50*6bbfed0dSDavid du Colombier int	fileIsExclusive(File*);
5100580da5SDavid du Colombier int	fileIsRoFs(File*);
5200580da5SDavid du Colombier int	fileIsRoot(File*);
5300580da5SDavid du Colombier int	fileMapBlock(File*, ulong, uchar[VtScoreSize], ulong);
5400580da5SDavid du Colombier int	fileMetaFlush(File*, int);
5500580da5SDavid du Colombier char	*fileName(File *f);
5600580da5SDavid du Colombier File	*fileOpen(Fs*, char*);
5700580da5SDavid du Colombier int	fileRead(File*, void *, int, vlong);
5800580da5SDavid du Colombier int	fileRemove(File*, char*);
5900580da5SDavid du Colombier int	fileSetDir(File*, DirEntry*, char*);
6000580da5SDavid du Colombier int	fileSetQidSpace(File*, u64int, u64int);
6100580da5SDavid du Colombier int	fileSetSize(File*, uvlong);
6200580da5SDavid du Colombier int	fileSync(File*);
6300580da5SDavid du Colombier int	fileTruncate(File*, char*);
6400580da5SDavid du Colombier File	*fileWalk(File*, char*);
6500580da5SDavid du Colombier File	*_fileWalk(File*, char*, int);
665e96a66cSDavid du Colombier int	fileWalkSources(File*);
6700580da5SDavid du Colombier int	fileWrite(File*, void *, int, vlong, char*);
68