1 Source* sourceRoot(Fs*, u32int, int); 2 Source* sourceOpen(Source*, ulong, int); 3 Source* sourceCreate(Source*, int, int, u32int); 4 Block* sourceBlock(Source*, ulong, int); 5 Block* _sourceBlock(Source*, ulong, int, int, ulong); 6 int sourceGetEntry(Source*, Entry*); 7 int sourceSetEntry(Source*, Entry*); 8 int sourceSetSize(Source*, uvlong); 9 uvlong sourceGetSize(Source*); 10 int sourceSetDirSize(Source*, ulong); 11 ulong sourceGetDirSize(Source*); 12 int sourceTruncate(Source*); 13 int sourceRemove(Source*); 14 void sourceClose(Source*); 15 int sourceLock(Source*, int); 16 void sourceUnlock(Source*); 17 int sourceLock2(Source*, Source*, int); 18 19 Cache* cacheAlloc(Disk*, VtSession*, ulong, int); 20 void cacheCountUsed(Cache*, u32int, u32int*, u32int*, u32int*); 21 void cacheFree(Cache*); 22 Block* cacheLocal(Cache*, int, u32int, int); 23 Block* cacheLocalData(Cache*, u32int, int, u32int, int, u32int); 24 Block* cacheGlobal(Cache*, uchar[VtScoreSize], int, u32int, int); 25 Block* cacheAllocBlock(Cache*, int, u32int, u32int, u32int); 26 void cacheFlush(Cache*, int); 27 u32int cacheLocalSize(Cache*, int); 28 int cacheDirty(Cache*); 29 int readLabel(Cache*, Label*, u32int addr); 30 31 Block* blockCopy(Block*, u32int, u32int, u32int); 32 void blockDupLock(Block*); 33 void blockPut(Block*); 34 void blockDependency(Block*, Block*, int, uchar*, Entry*); 35 int blockDirty(Block*); 36 void blockRemoveLink(Block*, u32int, int, u32int, int); 37 int blockSetLabel(Block*, Label*, int); 38 Block* _blockSetLabel(Block*, Label*); 39 void blockSetIOState(Block*, int); 40 int blockWrite(Block*); 41 uchar* blockRollback(Block*, uchar*); 42 43 Disk* diskAlloc(int); 44 void diskFree(Disk*); 45 int diskReadRaw(Disk*, int, u32int, uchar*); 46 int diskWriteRaw(Disk*, int, u32int, uchar*); 47 void diskRead(Disk*, Block*); 48 void diskWrite(Disk*, Block*); 49 void diskWriteAndWait(Disk*, Block*); 50 int diskFlush(Disk*); 51 u32int diskSize(Disk*, int); 52 int diskBlockSize(Disk*); 53 54 char* bsStr(int); 55 char* bioStr(int); 56 char* btStr(int); 57 u32int globalToLocal(uchar[VtScoreSize]); 58 void localToGlobal(u32int, uchar[VtScoreSize]); 59 60 int headerUnpack(Header*, uchar*); 61 void headerPack(Header*, uchar*); 62 63 int labelFmt(Fmt*); 64 int labelUnpack(Label*, uchar*, int); 65 void labelPack(Label*, uchar*, int); 66 67 int scoreFmt(Fmt*); 68 69 int superUnpack(Super*, uchar*); 70 void superPack(Super*, uchar*); 71 72 int entryUnpack(Entry*, uchar*, int); 73 void entryPack(Entry*, uchar*, int); 74 int entryType(Entry*); 75 76 Periodic* periodicAlloc(void (*)(void*), void*, int); 77 void periodicKill(Periodic*); 78 79 File* fileRoot(Source*); 80 int fileSnapshot(File*, File*, u32int, int); 81 int fileGetSources(File*, Entry*, Entry*); 82 int mkVac(VtSession*, uint, Entry*, Entry*, DirEntry*, uchar[VtScoreSize]); 83 int fsNextQid(Fs*, u64int*); 84 Block* superGet(Cache*, Super*); 85 86 Arch* archInit(Cache*, Disk*, Fs*, VtSession*); 87 void archFree(Arch*); 88 void archKick(Arch*); 89 90 void bwatchLock(Block*); 91 void bwatchUnlock(Block*); 92 void bwatchInit(void); 93 void bwatchSetBlockSize(uint); 94 void bwatchDependency(Block*); 95 void bwatchReset(uchar[VtScoreSize]); 96 97 void initWalk(WalkPtr*, Block*, uint); 98 int nextWalk(WalkPtr*, uchar[VtScoreSize], uchar*, u32int*, Entry**); 99 100 void snapGetTimes(Snap*, u32int*, u32int*, u32int*); 101 void snapSetTimes(Snap*, u32int, u32int, u32int); 102 103 void fsCheck(Fsck*); 104 105 #pragma varargck type "L" Label* 106