typedef struct MetaBlock MetaBlock; typedef struct MetaEntry MetaEntry; #define MaxBlock (1UL<<31) enum { BytesPerEntry = 100, /* estimate of bytes per dir entries - determines number of index entries in the block */ FullPercentage = 80, /* don't allocate in block if more than this percentage full */ FlushSize = 200, /* number of blocks to flush */ DirtyPercentage = 50 /* maximum percentage of dirty blocks */ }; struct MetaEntry { uchar *p; ushort size; }; struct MetaBlock { int maxsize; /* size of block */ int size; /* size used */ int free; /* free space within used size */ int maxindex; /* entries allocated for table */ int nindex; /* amount of table used */ int unbotch; uchar *buf; }; struct VacDirEnum { VacFile *file; u32int boff; int i, n; VacDir *buf; };