Annotation of researchv10no/cmd/vsw/crossbar.c, revision 1.1.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.