xref: /plan9-contrib/sys/src/cmd/fossil/fs.h (revision d7aba6c3b511bc618cf0c53345848188fc02611a)
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 
9*d7aba6c3SDavid du Colombier enum
10*d7aba6c3SDavid du Colombier {
11*d7aba6c3SDavid du Colombier 	STACK = 32*1024,
12*d7aba6c3SDavid du Colombier };
13*d7aba6c3SDavid du Colombier 
145e96a66cSDavid du Colombier /* modes */
155e96a66cSDavid du Colombier 
165e96a66cSDavid du Colombier enum {
175e96a66cSDavid du Colombier 	OReadOnly,
185e96a66cSDavid du Colombier 	OReadWrite,
195e96a66cSDavid du Colombier 	OOverWrite,
205e96a66cSDavid du Colombier };
215e96a66cSDavid du Colombier 
2223e56024SDavid du Colombier extern char *currfsysname;
231bdadbfaSDavid du Colombier extern char *foptname;
2423e56024SDavid du Colombier 
255e96a66cSDavid du Colombier void	fsClose(Fs*);
2600580da5SDavid du Colombier int	fsEpochLow(Fs*, u32int);
275e96a66cSDavid du Colombier File	*fsGetRoot(Fs*);
2800580da5SDavid du Colombier int	fsHalt(Fs*);
29*d7aba6c3SDavid du Colombier Fs	*fsOpen(char*, VtConn*, long, int);
3000580da5SDavid du Colombier int	fsRedial(Fs*, char*);
3100580da5SDavid du Colombier void	fsSnapshotCleanup(Fs*, u32int);
32c3c4501eSDavid du Colombier int	fsSnapshot(Fs*, char*, char*, int);
33dc5a79c1SDavid du Colombier void	fsSnapshotRemove(Fs*);
345e96a66cSDavid du Colombier int	fsSync(Fs*);
3581cf8742SDavid du Colombier int	fsUnhalt(Fs*);
365e96a66cSDavid du Colombier int	fsVac(Fs*, char*, uchar[VtScoreSize]);
375e96a66cSDavid du Colombier 
3800580da5SDavid du Colombier void	deeClose(DirEntryEnum*);
395e96a66cSDavid du Colombier DirEntryEnum *deeOpen(File*);
405e96a66cSDavid du Colombier int	deeRead(DirEntryEnum*, DirEntry*);
4100580da5SDavid du Colombier int	fileClri(File*, char*, char*);
4200580da5SDavid du Colombier int	fileClriPath(Fs*, char*, char*);
4300580da5SDavid du Colombier File	*fileCreate(File*, char*, ulong, char*);
4400580da5SDavid du Colombier int	fileDecRef(File*);
4500580da5SDavid du Colombier int	fileGetDir(File*, DirEntry*);
4600580da5SDavid du Colombier uvlong	fileGetId(File*);
4700580da5SDavid du Colombier ulong	fileGetMcount(File*);
4800580da5SDavid du Colombier ulong	fileGetMode(File*);
4900580da5SDavid du Colombier File	*fileGetParent(File*);
5000580da5SDavid du Colombier int	fileGetSize(File*, uvlong*);
5100580da5SDavid du Colombier File	*fileIncRef(File*);
5200580da5SDavid du Colombier int	fileIsDir(File*);
536bbfed0dSDavid du Colombier int	fileIsTemporary(File*);
546bbfed0dSDavid du Colombier int	fileIsAppend(File*);
556bbfed0dSDavid du Colombier int	fileIsExclusive(File*);
5600580da5SDavid du Colombier int	fileIsRoFs(File*);
5700580da5SDavid du Colombier int	fileIsRoot(File*);
5800580da5SDavid du Colombier int	fileMapBlock(File*, ulong, uchar[VtScoreSize], ulong);
5900580da5SDavid du Colombier int	fileMetaFlush(File*, int);
6000580da5SDavid du Colombier char	*fileName(File *f);
6100580da5SDavid du Colombier File	*fileOpen(Fs*, char*);
6200580da5SDavid du Colombier int	fileRead(File*, void *, int, vlong);
6300580da5SDavid du Colombier int	fileRemove(File*, char*);
6400580da5SDavid du Colombier int	fileSetDir(File*, DirEntry*, char*);
6500580da5SDavid du Colombier int	fileSetQidSpace(File*, u64int, u64int);
6600580da5SDavid du Colombier int	fileSetSize(File*, uvlong);
6700580da5SDavid du Colombier int	fileSync(File*);
6800580da5SDavid du Colombier int	fileTruncate(File*, char*);
6900580da5SDavid du Colombier File	*fileWalk(File*, char*);
7000580da5SDavid du Colombier File	*_fileWalk(File*, char*, int);
715e96a66cSDavid du Colombier int	fileWalkSources(File*);
7200580da5SDavid du Colombier int	fileWrite(File*, void *, int, vlong, char*);
73