aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/findscore.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/venti/findscore.c')
-rw-r--r--src/cmd/venti/findscore.c122
1 files changed, 0 insertions, 122 deletions
diff --git a/src/cmd/venti/findscore.c b/src/cmd/venti/findscore.c
deleted file mode 100644
index 7718adce..00000000
--- a/src/cmd/venti/findscore.c
+++ /dev/null
@@ -1,122 +0,0 @@
-#include "stdinc.h"
-#include "dat.h"
-#include "fns.h"
-
-enum
-{
- ClumpChunks = 32*1024
-};
-
-static int verbose;
-
-int
-clumpinfoeq(ClumpInfo *c, ClumpInfo *d)
-{
- return c->type == d->type
- && c->size == d->size
- && c->uncsize == d->uncsize
- && scorecmp(c->score, d->score)==0;
-}
-
-int
-findscore(Arena *arena, uchar *score)
-{
- IEntry ie;
- ClumpInfo *ci, *cis;
- u64int a;
- u32int clump;
- int i, n, found;
-
-//ZZZ remove fprint?
- if(arena->clumps)
- fprint(2, "reading directory for arena=%s with %d entries\n", arena->name, arena->clumps);
-
- cis = MKN(ClumpInfo, ClumpChunks);
- found = 0;
- a = 0;
- memset(&ie, 0, sizeof(IEntry));
- for(clump = 0; clump < arena->clumps; clump += n){
- n = ClumpChunks;
- if(n > arena->clumps - clump)
- n = arena->clumps - clump;
- if(readclumpinfos(arena, clump, cis, n) != n){
- seterr(EOk, "arena directory read failed: %r");
- break;
- }
-
- for(i = 0; i < n; i++){
- ci = &cis[i];
- if(scorecmp(score, ci->score)==0){
- fprint(2, "found at clump=%d with type=%d size=%d csize=%d position=%lld\n",
- clump + i, ci->type, ci->uncsize, ci->size, a);
- found++;
- }
- a += ci->size + ClumpSize;
- }
- }
- free(cis);
- return found;
-}
-
-void
-usage(void)
-{
- fprint(2, "usage: findscore [-v] arenafile score\n");
- threadexitsall(0);
-}
-
-void
-threadmain(int argc, char *argv[])
-{
- ArenaPart *ap;
- Part *part;
- char *file;
- u8int score[VtScoreSize];
- int i, found;
-
- fmtinstall('V', vtscorefmt);
- statsinit();
-
- ARGBEGIN{
- case 'v':
- verbose++;
- break;
- default:
- usage();
- break;
- }ARGEND
-
- readonly = 1;
-
- if(argc != 2)
- usage();
-
- file = argv[0];
- if(strscore(argv[1], score) < 0)
- sysfatal("bad score %s\n", argv[1]);
-
- part = initpart(file, 0);
- if(part == nil)
- sysfatal("can't open partition %s: %r", file);
-
- ap = initarenapart(part);
- if(ap == nil)
- sysfatal("can't initialize arena partition in %s: %r", file);
-
- if(verbose > 1){
- printarenapart(2, ap);
- fprint(2, "\n");
- }
-
- initdcache(8 * MaxDiskBlock);
-
- found = 0;
- for(i = 0; i < ap->narenas; i++)
- found += findscore(ap->arenas[i], score);
-
- print("found %d occurances of %V\n", found, score);
-
- if(verbose > 1)
- printstats();
- threadexitsall(0);
-}