Annotation of researchv10no/sys/io/dkmod.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * one dkmod per datakit interface
        !             3:  * also any other data common to datakit
        !             4:  */
        !             5: 
        !             6: #include <sys/param.h>
        !             7: #include <sys/dkmod.h>
        !             8: #include <sys/dkstat.h>
        !             9: 
        !            10: #define        NDKMOD  4       /* big enough for everyone */
        !            11: 
        !            12: int dkmodcnt = NDKMOD;
        !            13: 
        !            14: struct dkmodule dkmod[NDKMOD];
        !            15: struct dkstat dkstat;
        !            16: 
        !            17: /*
        !            18:  * find the appropriate dkmod;
        !            19:  * alloc a new one if need be
        !            20:  * dev is the entire device
        !            21:  */
        !            22: 
        !            23: struct dkmodule *
        !            24: dkmodall(dev, lo, hi)
        !            25: dev_t dev;
        !            26: {
        !            27:        register int i;
        !            28:        register struct dkmodule *dk;
        !            29:        register struct dkmodule *ek;
        !            30: 
        !            31:        dev = major(dev);
        !            32:        ek = NULL;
        !            33:        for (dk = dkmod, i = 0; i < NDKMOD; dk++, i++) {
        !            34:                if (dk->dev == 0 && ek == NULL) {
        !            35:                        ek = dk;
        !            36:                        continue;
        !            37:                }
        !            38:                if (dk->dev == dev && dk->lo == lo && dk->hi == hi)
        !            39:                        return (dk);
        !            40:        }
        !            41:        if (ek) {
        !            42:                ek->dev = dev;
        !            43:                ek->lo = lo;
        !            44:                ek->hi = hi;
        !            45:        }
        !            46:        return (ek);
        !            47: }
        !            48: 
        !            49: struct dkmodule *
        !            50: getdkmod(dev)
        !            51: dev_t dev;
        !            52: {
        !            53:        register int i;
        !            54:        register struct dkmodule *dk;
        !            55:        register maj, min;
        !            56: 
        !            57:        maj = major(dev);
        !            58:        min = minor(dev);
        !            59:        for (dk = dkmod, i = 0; i < NDKMOD; dk++, i++)
        !            60:                if (dk->dev == maj && min >= dk->lo && min < dk->hi)
        !            61:                        return (dk);
        !            62:        return (NULL);
        !            63: }

unix.superglobalmegacorp.com

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