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