Annotation of 43BSDTahoe/sys/tahoestand/vdformat/util.c, revision 1.1

1.1     ! root        1: #ifndef lint
        !             2: static char sccsid[] = "@(#)util.c     1.3 (Berkeley/CCI) 5/31/88";
        !             3: #endif
        !             4: 
        !             5: #include       "vdfmt.h"
        !             6: #include       "cmd.h"
        !             7: 
        !             8: /*
        !             9: */
        !            10: 
        !            11: to_track(daddr)
        !            12: dskadr daddr;
        !            13: {
        !            14:        return ((daddr.cylinder * lab->d_ntracks) + daddr.track);
        !            15: }
        !            16: 
        !            17: 
        !            18: /*
        !            19: */
        !            20: 
        !            21: dskadr *from_track(trk)
        !            22: int    trk;
        !            23: {
        !            24:        static dskadr   temp;
        !            25: 
        !            26:        temp.cylinder = trk / lab->d_ntracks;
        !            27:        temp.track = trk % lab->d_ntracks;
        !            28:        temp.sector = 0;
        !            29:        return &temp;
        !            30: }
        !            31: 
        !            32: 
        !            33: /*
        !            34: */
        !            35: 
        !            36: to_sector(daddr)
        !            37: dskadr daddr;
        !            38: {
        !            39:        return ((to_track(daddr) * lab->d_nsectors) + daddr.sector);
        !            40: }
        !            41: 
        !            42: 
        !            43: /*
        !            44: */
        !            45: 
        !            46: dskadr *from_sector(sec)
        !            47: unsigned int   sec;
        !            48: {
        !            49:        static dskadr   temp;
        !            50: 
        !            51:        temp = *from_track((int)(sec / lab->d_nsectors));
        !            52:        temp.sector = sec % lab->d_nsectors;
        !            53:        return &temp;
        !            54: }
        !            55: 
        !            56: 
        !            57: /*
        !            58: **
        !            59: */
        !            60: 
        !            61: print_unix_block(dskaddr)
        !            62: dskadr dskaddr;
        !            63: {
        !            64:        char    fs;
        !            65:        int     blk;
        !            66:        register struct partition *pp;
        !            67:                        
        !            68:        indent();
        !            69:        blk = to_sector(dskaddr);
        !            70:        print("** Warning - Unable to relocate sector %d:\n",to_sector(dskaddr)); 
        !            71:        indent();
        !            72:        print("to map out using BADSECT use the following values:\n");
        !            73:        indent();
        !            74:        for(fs = 0; fs < lab->d_npartitions; fs++) {
        !            75:                int     s, l;
        !            76: 
        !            77:                pp = &lab->d_partitions[fs];
        !            78:                s = pp->p_offset;
        !            79:                l = pp->p_size;
        !            80:                if (pp->p_fsize == 0)
        !            81:                        pp->p_fsize = DEV_BSIZE;
        !            82:                if((blk < (s+l)) && (blk >= s)) {
        !            83:                        print("On the `%c' Partition use filesystem block %d.\n",
        !            84:                            fs+'a', (blk - s) * lab->d_secsize / pp->p_fsize);
        !            85:                }
        !            86:        }
        !            87:        exdent(3);
        !            88: }
        !            89: 
        !            90: dskadr *from_unix(par, block)
        !            91: unsigned char  par;
        !            92: unsigned int   block;
        !            93: {
        !            94:        unsigned int    sector;
        !            95:        register int    fs;
        !            96:        register struct partition *pp;
        !            97:        static dskadr           dskaddr;
        !            98: 
        !            99:        fs =  tolower(par) - 'a';
        !           100:        if((fs < lab->d_npartitions) &&
        !           101:            (block <= (pp = &lab->d_partitions[fs])->p_size)) {
        !           102:                if (pp->p_fsize == 0)
        !           103:                        pp->p_fsize = DEV_BSIZE;
        !           104:                dskaddr = *from_sector(pp->p_offset +
        !           105:                    block * pp->p_fsize / lab->d_secsize);
        !           106:        } else {
        !           107:                dskaddr.cylinder = -1;
        !           108:                dskaddr.track = -1;
        !           109:                dskaddr.sector = -1;
        !           110:        }
        !           111:        return &dskaddr;
        !           112: }

unix.superglobalmegacorp.com

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