Blame


1 7a4ee46d 2003-11-23 devnull #include "stdinc.h"
2 7a4ee46d 2003-11-23 devnull #include "dat.h"
3 7a4ee46d 2003-11-23 devnull #include "fns.h"
4 7a4ee46d 2003-11-23 devnull
5 7a4ee46d 2003-11-23 devnull static int verbose;
6 7a4ee46d 2003-11-23 devnull void
7 7a4ee46d 2003-11-23 devnull usage(void)
8 7a4ee46d 2003-11-23 devnull {
9 7a4ee46d 2003-11-23 devnull fprint(2, "usage: syncindex [-fv] [-B blockcachesize] config\n");
10 7a4ee46d 2003-11-23 devnull threadexitsall("usage");
11 7a4ee46d 2003-11-23 devnull }
12 7a4ee46d 2003-11-23 devnull
13 7a4ee46d 2003-11-23 devnull void
14 7a4ee46d 2003-11-23 devnull threadmain(int argc, char *argv[])
15 7a4ee46d 2003-11-23 devnull {
16 7a4ee46d 2003-11-23 devnull u32int bcmem;
17 7a4ee46d 2003-11-23 devnull int fix;
18 7a4ee46d 2003-11-23 devnull
19 7a4ee46d 2003-11-23 devnull fix = 0;
20 7a4ee46d 2003-11-23 devnull bcmem = 0;
21 7a4ee46d 2003-11-23 devnull ARGBEGIN{
22 7a4ee46d 2003-11-23 devnull case 'B':
23 7a4ee46d 2003-11-23 devnull bcmem = unittoull(ARGF());
24 7a4ee46d 2003-11-23 devnull break;
25 7a4ee46d 2003-11-23 devnull case 'f':
26 7a4ee46d 2003-11-23 devnull fix++;
27 7a4ee46d 2003-11-23 devnull break;
28 7a4ee46d 2003-11-23 devnull case 'v':
29 7a4ee46d 2003-11-23 devnull verbose++;
30 7a4ee46d 2003-11-23 devnull break;
31 7a4ee46d 2003-11-23 devnull default:
32 7a4ee46d 2003-11-23 devnull usage();
33 7a4ee46d 2003-11-23 devnull break;
34 7a4ee46d 2003-11-23 devnull }ARGEND
35 7a4ee46d 2003-11-23 devnull
36 7a4ee46d 2003-11-23 devnull if(!fix)
37 7a4ee46d 2003-11-23 devnull readonly = 1;
38 7a4ee46d 2003-11-23 devnull
39 7a4ee46d 2003-11-23 devnull if(argc != 1)
40 7a4ee46d 2003-11-23 devnull usage();
41 7a4ee46d 2003-11-23 devnull
42 7a4ee46d 2003-11-23 devnull if(initventi(argv[0]) < 0)
43 7a4ee46d 2003-11-23 devnull sysfatal("can't init venti: %r");
44 7a4ee46d 2003-11-23 devnull
45 7a4ee46d 2003-11-23 devnull if(bcmem < maxblocksize * (mainindex->narenas + mainindex->nsects * 4 + 16))
46 7a4ee46d 2003-11-23 devnull bcmem = maxblocksize * (mainindex->narenas + mainindex->nsects * 4 + 16);
47 7a4ee46d 2003-11-23 devnull fprint(2, "initialize %d bytes of disk block cache\n", bcmem);
48 7a4ee46d 2003-11-23 devnull initdcache(bcmem);
49 7a4ee46d 2003-11-23 devnull
50 7a4ee46d 2003-11-23 devnull if(verbose)
51 7a4ee46d 2003-11-23 devnull printindex(2, mainindex);
52 7a4ee46d 2003-11-23 devnull if(syncindex(mainindex, fix) < 0)
53 7a4ee46d 2003-11-23 devnull sysfatal("failed to sync index=%s: %r\n", mainindex->name);
54 7a4ee46d 2003-11-23 devnull
55 7a4ee46d 2003-11-23 devnull threadexitsall(0);
56 7a4ee46d 2003-11-23 devnull }