Annotation of researchv10no/sys/io/dkmod.c, revision 1.1.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.