Annotation of researchv10dc/cmd/worm/oscsi/osanity/tstrd.c, revision 1.1.1.1

1.1       root        1: main(argc, argv)
                      2:        char **argv;
                      3: {
                      4:        long first, last, t;
                      5:        char buf[32768], buf1[32768], *bufp;
                      6:        int fd, n;
                      7:        char *worm = "/dev/worm0";
                      8: 
                      9:        if((argc < 3) || (argc > 4)){
                     10:                print("Usage: tstrd [device] firstblock firstnonblock\n");
                     11:                exit(1);
                     12:        }
                     13:        if(argc > 3)
                     14:                worm = *++argv;
                     15:        if((fd = open(worm, 0)) < 0){
                     16:                perror(worm);
                     17:                exit(1);
                     18:        }
                     19:        first = atol(argv[1]);
                     20:        last = atol(argv[2]);
                     21:        if((first < 0) || (last <= first)){
                     22:                print("bad first=%ld last=%ld\n", first, last);
                     23:                exit(1);
                     24:        }
                     25:        print("reading blocks %ld - %ld inclusive on %s\n", first, last-1, worm);
                     26:        fillbuf(buf, 32);
                     27:        bufp = &buf[1024*(first%5)];
                     28:        lseek(fd, first*1024, 0);
                     29:        while(first < last){
                     30:                n = last-first;
                     31:                if(n > 25) n = 25;
                     32:                if(read(fd, buf1, n*1024) != n*1024){
                     33:                        print("block %ld: ", first);
                     34:                        perror("read");
                     35:                        exit(1);
                     36:                }
                     37:                if(memcmp(bufp, buf1, n*1024)){
                     38:                        print("block %ld: bytes differ\n", first);
                     39:                        exit(1);
                     40:                }
                     41:                if((first%5000) == 0){
                     42:                        t = time((long *)0);
                     43:                        print("done block %ld: %s", first, ctime(&t));
                     44:                }
                     45:                first += n;
                     46:        }
                     47:        exit(0);
                     48: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.