15e96a66cSDavid du Colombier Block* sourceBlock(Source*, ulong, int); 2fe853e23SDavid du Colombier Block* _sourceBlock(Source*, ulong, int, int, ulong); 300580da5SDavid du Colombier void sourceClose(Source*); 400580da5SDavid du Colombier Source* sourceCreate(Source*, int, int, u32int); 500580da5SDavid du Colombier ulong sourceGetDirSize(Source*); 65e96a66cSDavid du Colombier int sourceGetEntry(Source*, Entry*); 700580da5SDavid du Colombier uvlong sourceGetSize(Source*); 800580da5SDavid du Colombier int sourceLock2(Source*, Source*, int); 900580da5SDavid du Colombier int sourceLock(Source*, int); 1000580da5SDavid du Colombier char *sourceName(Source *s); 1100580da5SDavid du Colombier Source* sourceOpen(Source*, ulong, int, int); 1200580da5SDavid du Colombier int sourceRemove(Source*); 1300580da5SDavid du Colombier Source* sourceRoot(Fs*, u32int, int); 1400580da5SDavid du Colombier int sourceSetDirSize(Source*, ulong); 15fe853e23SDavid du Colombier int sourceSetEntry(Source*, Entry*); 165e96a66cSDavid du Colombier int sourceSetSize(Source*, uvlong); 175e96a66cSDavid du Colombier int sourceTruncate(Source*); 185e96a66cSDavid du Colombier void sourceUnlock(Source*); 195e96a66cSDavid du Colombier 2000580da5SDavid du Colombier Block* cacheAllocBlock(Cache*, int, u32int, u32int, u32int); 215e96a66cSDavid du Colombier Cache* cacheAlloc(Disk*, VtSession*, ulong, int); 227abd426fSDavid du Colombier void cacheCountUsed(Cache*, u32int, u32int*, u32int*, u32int*); 2300580da5SDavid du Colombier int cacheDirty(Cache*); 2400580da5SDavid du Colombier void cacheFlush(Cache*, int); 255e96a66cSDavid du Colombier void cacheFree(Cache*); 2600580da5SDavid du Colombier Block* cacheGlobal(Cache*, uchar[VtScoreSize], int, u32int, int); 275e96a66cSDavid du Colombier Block* cacheLocal(Cache*, int, u32int, int); 285e96a66cSDavid du Colombier Block* cacheLocalData(Cache*, u32int, int, u32int, int, u32int); 295e96a66cSDavid du Colombier u32int cacheLocalSize(Cache*, int); 30e569ccb5SDavid du Colombier int readLabel(Cache*, Label*, u32int addr); 315e96a66cSDavid du Colombier 325e96a66cSDavid du Colombier Block* blockCopy(Block*, u32int, u32int, u32int); 3361201b97SDavid du Colombier void blockDependency(Block*, Block*, int, uchar*, Entry*); 345e96a66cSDavid du Colombier int blockDirty(Block*); 3500580da5SDavid du Colombier void blockDupLock(Block*); 3600580da5SDavid du Colombier void blockPut(Block*); 37e569ccb5SDavid du Colombier void blockRemoveLink(Block*, u32int, int, u32int, int); 385e96a66cSDavid du Colombier uchar* blockRollback(Block*, uchar*); 3900580da5SDavid du Colombier void blockSetIOState(Block*, int); 4000580da5SDavid du Colombier Block* _blockSetLabel(Block*, Label*); 4100580da5SDavid du Colombier int blockSetLabel(Block*, Label*, int); 42*e12a9870SDavid du Colombier int blockWrite(Block*, int); 435e96a66cSDavid du Colombier 445e96a66cSDavid du Colombier Disk* diskAlloc(int); 455e96a66cSDavid du Colombier int diskBlockSize(Disk*); 4600580da5SDavid du Colombier int diskFlush(Disk*); 4700580da5SDavid du Colombier void diskFree(Disk*); 4800580da5SDavid du Colombier void diskRead(Disk*, Block*); 4900580da5SDavid du Colombier int diskReadRaw(Disk*, int, u32int, uchar*); 5000580da5SDavid du Colombier u32int diskSize(Disk*, int); 5100580da5SDavid du Colombier void diskWriteAndWait(Disk*, Block*); 5200580da5SDavid du Colombier void diskWrite(Disk*, Block*); 5300580da5SDavid du Colombier int diskWriteRaw(Disk*, int, u32int, uchar*); 545e96a66cSDavid du Colombier 555e96a66cSDavid du Colombier char* bioStr(int); 5600580da5SDavid du Colombier char* bsStr(int); 575e96a66cSDavid du Colombier char* btStr(int); 585e96a66cSDavid du Colombier u32int globalToLocal(uchar[VtScoreSize]); 595e96a66cSDavid du Colombier void localToGlobal(u32int, uchar[VtScoreSize]); 605e96a66cSDavid du Colombier 615e96a66cSDavid du Colombier void headerPack(Header*, uchar*); 6200580da5SDavid du Colombier int headerUnpack(Header*, uchar*); 635e96a66cSDavid du Colombier 645e96a66cSDavid du Colombier int labelFmt(Fmt*); 655e96a66cSDavid du Colombier void labelPack(Label*, uchar*, int); 6600580da5SDavid du Colombier int labelUnpack(Label*, uchar*, int); 675e96a66cSDavid du Colombier 685e96a66cSDavid du Colombier int scoreFmt(Fmt*); 695e96a66cSDavid du Colombier 705e96a66cSDavid du Colombier void superPack(Super*, uchar*); 7100580da5SDavid du Colombier int superUnpack(Super*, uchar*); 725e96a66cSDavid du Colombier 735e96a66cSDavid du Colombier void entryPack(Entry*, uchar*, int); 745e96a66cSDavid du Colombier int entryType(Entry*); 7500580da5SDavid du Colombier int entryUnpack(Entry*, uchar*, int); 765e96a66cSDavid du Colombier 775e96a66cSDavid du Colombier Periodic* periodicAlloc(void (*)(void*), void*, int); 785e96a66cSDavid du Colombier void periodicKill(Periodic*); 795e96a66cSDavid du Colombier 8000580da5SDavid du Colombier int fileGetSources(File*, Entry*, Entry*); 815e96a66cSDavid du Colombier File* fileRoot(Source*); 825e96a66cSDavid du Colombier int fileSnapshot(File*, File*, u32int, int); 835e96a66cSDavid du Colombier int fsNextQid(Fs*, u64int*); 8400580da5SDavid du Colombier int mkVac(VtSession*, uint, Entry*, Entry*, DirEntry*, uchar[VtScoreSize]); 855e96a66cSDavid du Colombier Block* superGet(Cache*, Super*); 865e96a66cSDavid du Colombier 875e96a66cSDavid du Colombier void archFree(Arch*); 8800580da5SDavid du Colombier Arch* archInit(Cache*, Disk*, Fs*, VtSession*); 895e96a66cSDavid du Colombier void archKick(Arch*); 905e96a66cSDavid du Colombier 915e96a66cSDavid du Colombier void bwatchDependency(Block*); 9200580da5SDavid du Colombier void bwatchInit(void); 9300580da5SDavid du Colombier void bwatchLock(Block*); 945e96a66cSDavid du Colombier void bwatchReset(uchar[VtScoreSize]); 9500580da5SDavid du Colombier void bwatchSetBlockSize(uint); 9600580da5SDavid du Colombier void bwatchUnlock(Block*); 975e96a66cSDavid du Colombier 985e96a66cSDavid du Colombier void initWalk(WalkPtr*, Block*, uint); 995e96a66cSDavid du Colombier int nextWalk(WalkPtr*, uchar[VtScoreSize], uchar*, u32int*, Entry**); 1005e96a66cSDavid du Colombier 101dc5a79c1SDavid du Colombier void snapGetTimes(Snap*, u32int*, u32int*, u32int*); 102dc5a79c1SDavid du Colombier void snapSetTimes(Snap*, u32int, u32int, u32int); 1035e96a66cSDavid du Colombier 104e569ccb5SDavid du Colombier void fsCheck(Fsck*); 105e569ccb5SDavid du Colombier 1065e96a66cSDavid du Colombier #pragma varargck type "L" Label* 107