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

1.1       root        1: #include       "vdfmt.h"
                      2: #include       "cmd.h"
                      3: 
                      4: /*
                      5: */
                      6: 
                      7: to_track(daddr)
                      8: dskadr daddr;
                      9: {
                     10:        return ((daddr.cylinder * CURRENT->ntrak) + daddr.track);
                     11: }
                     12: 
                     13: 
                     14: /*
                     15: */
                     16: 
                     17: dskadr *from_track(trk)
                     18: int    trk;
                     19: {
                     20:        static dskadr   temp;
                     21: 
                     22:        temp.cylinder = trk / CURRENT->ntrak;
                     23:        temp.track = trk % CURRENT->ntrak;
                     24:        temp.sector = 0;
                     25:        return &temp;
                     26: }
                     27: 
                     28: 
                     29: /*
                     30: */
                     31: 
                     32: to_sector(daddr)
                     33: dskadr daddr;
                     34: {
                     35:        return ((to_track(daddr) * CURRENT->nsec) + daddr.sector);
                     36: }
                     37: 
                     38: 
                     39: /*
                     40: */
                     41: 
                     42: dskadr *from_sector(sec)
                     43: unsigned int   sec;
                     44: {
                     45:        static dskadr   temp;
                     46: 
                     47:        temp = *from_track((int)(sec / CURRENT->nsec));
                     48:        temp.sector = sec % CURRENT->nsec;
                     49:        return &temp;
                     50: }
                     51: 
                     52: 
                     53: /*
                     54: **
                     55: */
                     56: 
                     57: print_unix_block(dskaddr)
                     58: dskadr dskaddr;
                     59: {
                     60:        char    fs;
                     61:        int     blk;
                     62:        int     sec_per_blk=DEV_BSIZE / CURRENT->secsize;
                     63:                        
                     64:        indent();
                     65:        blk = to_sector(dskaddr) / sec_per_blk;
                     66:        print("** Warning - Unable to relocate sector %d:\n",to_sector(dskaddr)); 
                     67:        indent();
                     68:        print("to map out using BADSECT use the following values:\n");
                     69:        indent();
                     70:        for(fs = 0; fs < 8; fs++) {
                     71:                int     s, l;
                     72: 
                     73:                s = CURRENT->partition[fs].par_start;
                     74:                l = CURRENT->partition[fs].par_len;
                     75:                if((blk < (s+l)) && (blk >= s)) {
                     76:                        print("On the '%c' Partition use block %d.\n",
                     77:                            fs+'a', blk-s);
                     78:                }
                     79:        }
                     80:        exdent(3);
                     81: }
                     82: 
                     83: dskadr *from_unix(par, block)
                     84: unsigned char  par;
                     85: unsigned int   block;
                     86: {
                     87:        unsigned int    sector;
                     88:        register int    fs;
                     89:        static dskadr           dskaddr;
                     90: 
                     91:        fs =  tolower(par) - 'a';
                     92:        if((fs < 8) && (block <= CURRENT->partition[fs].par_len)) {
                     93:                sector = CURRENT->partition[fs].par_start;
                     94:                sector += block;
                     95:                sector *= DEV_BSIZE;
                     96:                sector /=  CURRENT->secsize;
                     97:                dskaddr = *from_sector(sector);
                     98:        }
                     99:        else {
                    100:                dskaddr.cylinder = -1;
                    101:                dskaddr.track = -1;
                    102:                dskaddr.sector = -1;
                    103:        }
                    104:        return &dskaddr;
                    105: }
                    106: 
                    107: 
                    108: blkzero(addr, len)
                    109: register char  *addr;
                    110: register int   len;
                    111: {
                    112:        while(len--)
                    113:                *(addr++) = (char)0;
                    114: }
                    115: 
                    116: 
                    117: blkcopy(from, to, len)
                    118: register char  *from;
                    119: register char  *to;
                    120: register int   len;
                    121: {
                    122:        while(len--)
                    123:                *(to++) = *(from++);
                    124: }
                    125: 
                    126: 
                    127: boolean blkcmp(a, b, len)
                    128: register char  *a;
                    129: register char  *b;
                    130: register int   len;
                    131: {
                    132:        while(len--) {
                    133:                if(*(a++) != *(b++))
                    134:                        return false;
                    135:        }
                    136:        return true;
                    137: }
                    138: 

unix.superglobalmegacorp.com

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