Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "stdinc.h"
2
#include "dat.h"
3
#include "fns.h"
4
 
5
static	int	verbose;
6
void
7
usage(void)
8
{
9
	fprint(2, "usage: syncindex [-v] [-B blockcachesize] config\n");
10
	threadexitsall("usage");
11
}
12
 
13
Config conf;
14
 
15
void
16
threadmain(int argc, char *argv[])
17
{
18
	u32int bcmem, icmem;
19
 
20
	bcmem = 0;
21
	icmem = 0;
22
	ARGBEGIN{
23
	case 'B':
24
		bcmem = unittoull(EARGF(usage()));
25
		break;
26
	case 'I':
27
		icmem = unittoull(EARGF(usage()));
28
		break;
29
	case 'v':
30
		verbose++;
31
		break;
32
	default:
33
		usage();
34
		break;
35
	}ARGEND
36
 
37
	if(argc != 1)
38
		usage();
39
 
40
	ventifmtinstall();
41
	if(initventi(argv[0], &conf) < 0)
42
		sysfatal("can't init venti: %r");
43
	if(mainindex->bloom && loadbloom(mainindex->bloom) < 0)
44
		sysfatal("can't load bloom filter: %r");
45
 
46
	if(bcmem < maxblocksize * (mainindex->narenas + mainindex->nsects * 4 + 16))
47
		bcmem = maxblocksize * (mainindex->narenas + mainindex->nsects * 4 + 16);
48
	if(0) fprint(2, "initialize %d bytes of disk block cache\n", bcmem);
49
	initdcache(bcmem);
50
	initlumpcache(1*1024*1024, 1024/8);
51
	initicache(icmem);
52
	initicachewrite();
53
	if(mainindex->bloom)
54
		startbloomproc(mainindex->bloom);
55
 
56
	if(verbose)
57
		printindex(2, mainindex);
58
	if(syncindex(mainindex) < 0)
59
		sysfatal("failed to sync index=%s: %r", mainindex->name);
60
	flushicache();
61
	flushdcache();
62
 
63
	threadexitsall(0);
64
}