void threadmain(int argc, char *argv[]) { ArenaPart *ap; Part *part; char *file; u8int score[VtScoreSize]; int i, found; ventifmtinstall(); 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", argv[1]); part = initpart(file, OREAD|ODIRECT); 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 occurrences of %V\n", found, score); if(verbose > 1) printstats(); threadexitsall(0); }
void threadmain(int argc, char *argv[]) { ArenaPart *ap; Part *part; char *file, *aname; int i; ventifmtinstall(); statsinit(); ARGBEGIN{ case 'q': quiet++; break; case 'v': verbose++; break; default: usage(); break; }ARGEND readonly = 1; if(argc != 2) usage(); file = argv[0]; aname = argv[1]; part = initpart(file, OREAD|ODIRECT); 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) printarenapart(2, ap); initdcache(8 * MaxDiskBlock); for(i = 0; i < ap->narenas; i++){ if(strcmp(ap->arenas[i]->name, aname) == 0){ rdarena(ap->arenas[i]); threadexitsall(0); } } sysfatal("couldn't find arena %s", aname); }