Annotation of cci/sys/stand/vdfmt/profile.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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