Annotation of researchv10no/cmd/vsw/crossbar.c, revision 1.1

1.1     ! root        1: #include       <libc.h>
        !             2: #include       "crossbar.h"
        !             3: 
        !             4: Crossbar::Crossbar(char *dkname, int n, int depth)
        !             5: {
        !             6:        dial = dkname;
        !             7:        nouts = n;
        !             8:        nwires = depth;
        !             9:        fd = -1;
        !            10:        nextc = 0;
        !            11:        imap = 0;
        !            12: }
        !            13: 
        !            14: void
        !            15: Crossbar::link(int ll, Crossbar *c, int l)
        !            16: {
        !            17:        if(nextc)
        !            18:                fprint(2, "warning: redefining link from crossbar %s\n", dial);
        !            19:        froml = ll;
        !            20:        nextc = c;
        !            21:        nextl = l;
        !            22: }
        !            23: 
        !            24: int
        !            25: Crossbar::map(int input, Crossbar **cp, int *ip)
        !            26: {
        !            27:        int i, *oip = ip;
        !            28: 
        !            29:        if(fd < 0)
        !            30:                startup();
        !            31:        if(imap == 0)
        !            32:                config();
        !            33:        for(i = 0; i < nouts; i++)
        !            34:                if(imap[i] == input){
        !            35:                        if(nextc && (i == froml)){
        !            36:                                int k = nextc->map(nextl, cp, ip);
        !            37:                                while(*cp)
        !            38:                                        cp++, ip++;
        !            39:                        } else
        !            40:                                *cp++ = this, *ip++ = i;
        !            41:                }
        !            42:        *cp = 0;
        !            43:        return(ip-oip);
        !            44: }
        !            45: 
        !            46: void
        !            47: Crossbar::startup()
        !            48: {
        !            49:        fprint(2, "no startup defined!!\n");
        !            50:        abort();
        !            51: }
        !            52: 
        !            53: void
        !            54: Crossbar::config()
        !            55: {
        !            56:        fprint(2, "no config defined!!\n");
        !            57:        abort();
        !            58: }
        !            59: 
        !            60: int
        !            61: Crossbar::connect(int, Crossbar *, int, int)
        !            62: {
        !            63:        fprint(2, "no connect defined!!\n");
        !            64:        abort();
        !            65:        return(0);
        !            66: }

unix.superglobalmegacorp.com

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