39 lines
801 B
C
39 lines
801 B
C
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;
|
|
};
|
|
|