19a747e4fSDavid du Colombier typedef struct MetaBlock MetaBlock; 2d9306527SDavid du Colombier typedef struct MetaEntry MetaEntry; 3*3be74836SDavid du Colombier 4*3be74836SDavid du Colombier #define MaxBlock (1UL<<31) 59a747e4fSDavid du Colombier 6d9306527SDavid du Colombier enum { 7*3be74836SDavid du Colombier BytesPerEntry = 100, /* estimate of bytes per dir entries - determines number of index entries in the block */ 8*3be74836SDavid du Colombier FullPercentage = 80, /* don't allocate in block if more than this percentage full */ 9*3be74836SDavid du Colombier FlushSize = 200, /* number of blocks to flush */ 10*3be74836SDavid du Colombier DirtyPercentage = 50 /* maximum percentage of dirty blocks */ 11d9306527SDavid du Colombier }; 12d9306527SDavid du Colombier 13d9306527SDavid du Colombier 14*3be74836SDavid du Colombier struct MetaEntry 15*3be74836SDavid du Colombier { 16d9306527SDavid du Colombier uchar *p; 17d9306527SDavid du Colombier ushort size; 189a747e4fSDavid du Colombier }; 199a747e4fSDavid du Colombier 20*3be74836SDavid du Colombier struct MetaBlock 21*3be74836SDavid du Colombier { 22d9306527SDavid du Colombier int maxsize; /* size of block */ 23d9306527SDavid du Colombier int size; /* size used */ 24d9306527SDavid du Colombier int free; /* free space within used size */ 25d9306527SDavid du Colombier int maxindex; /* entries allocated for table */ 26d9306527SDavid du Colombier int nindex; /* amount of table used */ 27d9306527SDavid du Colombier int unbotch; 289a747e4fSDavid du Colombier uchar *buf; 299a747e4fSDavid du Colombier }; 309a747e4fSDavid du Colombier 31*3be74836SDavid du Colombier struct VacDirEnum 32*3be74836SDavid du Colombier { 339a747e4fSDavid du Colombier VacFile *file; 34*3be74836SDavid du Colombier u32int boff; 35*3be74836SDavid du Colombier int i, n; 36*3be74836SDavid du Colombier VacDir *buf; 379a747e4fSDavid du Colombier }; 389a747e4fSDavid du Colombier 39