Annotation of researchv10no/cmd/chuck/adderr.c, revision 1.1

1.1     ! root        1: #include "fs.h"
        !             2: 
        !             3: char xbuf[4096];       /* also used by prname */
        !             4: char *
        !             5: errnm(n)
        !             6: {
        !             7:        switch(n) {
        !             8:        default:
        !             9:                sprintf(xbuf, "?%d?", n);
        !            10:                return(xbuf);
        !            11:        case Elinksize: return("Elinksize");
        !            12:        case Ebadaddr:  return("Ebadaddr");
        !            13:        case Efirst:    return("Efirst");
        !            14:        case Ebadread:  return("Ebadread");
        !            15:        case Efirstio:  return("Efirstio");
        !            16:        case Edirio:    return("Edirio");
        !            17:        case Enotdot:   return("Enotdot");
        !            18:        case Enotdotdot:        return("Enotdotdot");
        !            19:        case Edotino:   return("Edotino");
        !            20:        case Ebadino:   return("Ebadino");
        !            21:        case Ebadname:  return("Ebadname");
        !            22:        case Enullable: return("Enullable");
        !            23:        case Elinkcnt:  return("Elinkcnt");
        !            24:        case Emulti:    return("Emulti");
        !            25:        case Ebadparent:        return("Ebadparent");
        !            26:        case Esuperino: return("Esuperino");
        !            27:        case Esuperfree:        return("Esuperfree");
        !            28:        case Einvalid:  return("Einvalid");
        !            29:        case Efreelist: return("Efreelist");
        !            30:        case Edup:      return("Edup");
        !            31:        case Eshort:    return("Eshort");
        !            32:        case Ehole:     return("Ehole");
        !            33:        case Etriple:   return("Etriple");
        !            34:        case Eshortdir: return("Eshortdir");
        !            35:        case Eattach:   return("Eattach");
        !            36:        case Efakeroot: return("Efakeroot");
        !            37:        }
        !            38: }
        !            39: 
        !            40: adderr(n, a, b)
        !            41: {
        !            42:        if(!erlen) {
        !            43:                erlen = 100;
        !            44:                erlist = (er *) malloc(erlen * sizeof(er));
        !            45:                if(!erlist)
        !            46:                        fatal("can't alloc %d erlist\n", erlen);
        !            47:        }
        !            48:        if(erptr >= erlen) {
        !            49:                erlen *= 3;
        !            50:                erlist = (er *) realloc((char *)erlist, erlen * sizeof(er));
        !            51:                if(!erlist)
        !            52:                        fatal("can't realloc %d erlist\n");
        !            53:        }
        !            54:        errcnts[n]++;
        !            55:        erlist[erptr].type = n;
        !            56:        erlist[erptr].a = a;
        !            57:        erlist[erptr].b = b;
        !            58:        erlist[erptr].done = 0;
        !            59:        erptr++;
        !            60: }
        !            61: 
        !            62: supererr(n, a, b)
        !            63: {
        !            64:        adderr(n, a, b);
        !            65: }
        !            66: 
        !            67: inoerr(n, ino, i)
        !            68: {
        !            69:        adderr(n, ino, i);
        !            70: }
        !            71: 
        !            72: dupblock(bp, a, b)
        !            73: bm *bp;
        !            74: {      static cnt;
        !            75:        if(++cnt <= 20)
        !            76:                pmesg("dup block %d %s %s\n", bp-bmap, btype(a), btype(b));
        !            77:        else if(cnt == 20)
        !            78:                pmesg("more dups\n");
        !            79:        adderr(Edup, bp-bmap, bp->ino);
        !            80: }
        !            81: 
        !            82: direrror(n, ino, i)
        !            83: {
        !            84:        adderr(n, ino, i);
        !            85: }
        !            86: 

unix.superglobalmegacorp.com

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