Annotation of 43BSDReno/sys/tahoestand/vdformat/profile.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)profile.c  1.3 (Berkeley/CCI) 11/23/87";
                      3: #endif
                      4: 
                      5: 
                      6: #include       "vdfmt.h"
                      7: 
                      8: #define        cycles  10
                      9: 
                     10: /*
                     11: **
                     12: */
                     13: 
                     14: profile()
                     15: {
                     16:        unsigned int    total_time, i, step, remainder;
                     17:        dskadr          ead, zero;
                     18:        char            digit_buf[20];
                     19: 
                     20:        print("Disk seek profile for ");
                     21:        printf("controller %d, drive %d, ", cur.controller, cur.drive);
                     22:        printf("type %s.\n", lab->d_typename);
                     23: 
                     24:        indent();
                     25:        if(is_formatted() == false) {
                     26:                print("Can not profile unformatted drives!\n");
                     27:                _longjmp(abort_environ, 1);
                     28:        }
                     29:        print(" Seek  |                  Seek time (ms)\n");
                     30:        print("Length |0    5    10   15   20   25   30   35   40   45   50\n");
                     31:        print("-------|-----+----+----+----+----+----+----+----+----+----+\n");
                     32: 
                     33:        cur.state = prof;
                     34:        zero.cylinder = zero.track = zero.sector=0;
                     35:        ead.track = ead.sector=0;
                     36:        step = lab->d_ncylinders / 55;
                     37:        for(ead.cylinder=1; ead.cylinder<lab->d_ncylinders; ead.cylinder+=step){
                     38:                total_time = 0;
                     39:                for(i=0; i<cycles; i++) {
                     40:                        access_dsk((char *)save, &zero, VDOP_SEEK, 1, 60);
                     41:                        access_dsk((char *)save, &ead, VDOP_SEEK, 1, 60);
                     42:                        if(kill_processes == true)
                     43:                                _longjmp(quit_environ, 1);
                     44:                        total_time += ((2*60*1000*1000) - vdtimeout);
                     45:                }
                     46:                print("");
                     47:                sprintf(digit_buf, "%d      ", ead.cylinder);
                     48:                for(i=0; i<7; i++)
                     49:                        putchar(digit_buf[i]);
                     50:                putchar('|');   
                     51:                total_time /= cycles;
                     52:                remainder = total_time % 10;
                     53:                total_time /= 10;
                     54:                while(total_time--)
                     55:                        putchar(' ');
                     56:                if(remainder >= 5)
                     57:                        printf("+\n");
                     58:                else
                     59:                        printf("*\n");
                     60:                DELAY(400000);
                     61:        }
                     62:        print("-------|-----+----+----+----+----+----+----+----+----+----+\n");
                     63:        print("       |0    5    10   15   20   25   30   35   40   45   50\n");
                     64:        exdent(1);
                     65:        printf("Profile completed successfully.\n");
                     66: }
                     67: 

unix.superglobalmegacorp.com

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