|
|
1.1 root 1: /* frinit.c - frinit */
2:
3: #include <conf.h>
4: #include <kernel.h>
5: #include <frame.h>
6:
7: #ifdef NNETS
8: struct fglob fdata[NNETS];
9: int frbpool;
10: #endif
11:
12: /*------------------------------------------------------------------------
13: * frinit -- initialize frame-level network input and output processes
14: *------------------------------------------------------------------------
15: */
16: SYSCALL frinit(netid, indev, outdev)
17: int netid;
18: int indev, outdev;
19: {
20: #ifdef NNETS
21: struct fglob *fgptr;
22: int frtimer(), finput(), foutput();
23:
24: if (netid < 0 || netid >= NNETS)
25: return(SYSERR);
26: fgptr = &fdata[netid];
27: fgptr->findev = indev;
28: fgptr->foutdev = outdev;
29: fgptr->fiport = pcreate(FIPORTS);
30: fgptr->foport = pcreate(FOPORTS);
31: fgptr->ffport = pcreate(FFPORTS);
32: fgptr->fosem = screate(0);
33: fgptr->ftfuse = -1;
34: fgptr->ftpid = 0;
35: fgptr->fmachid = getmid(netid);
36: fgptr->ftimproc =
37: create(frtimer, FRSTACK, FRTPRIO, "frtimer", 1, netid);
38: resume( create(finput, FRSTACK, FRIPRIO, "finput", 1, netid) );
39: resume( create(foutput,FRSTACK, FROPRIO, "foutpt", 1, netid) );
40: return(OK);
41: #else
42: return(SYSERR);
43: #endif
44: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.