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;
};

