File:  [XINU] / xinu / sys / frinit.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:39:32 2018 UTC (8 years, 2 months ago) by root
Branches: xinu, MAIN
CVS tags: xinu-19910600, HEAD
Xinu for 68000/68010

/* frinit.c - frinit */

#include <conf.h>
#include <kernel.h>
#include <frame.h>

#ifdef	NNETS
struct	fglob	fdata[NNETS];
int	frbpool;
#endif

/*------------------------------------------------------------------------
 *  frinit  --  initialize frame-level network input and output processes
 *------------------------------------------------------------------------
 */
SYSCALL	frinit(netid, indev, outdev)
	int	netid;
	int	indev, outdev;
{
#ifdef	NNETS
	struct	fglob	*fgptr;
	int	frtimer(), finput(), foutput();

	if (netid < 0 || netid >= NNETS)
		return(SYSERR);
	fgptr = &fdata[netid];
	fgptr->findev = indev;
	fgptr->foutdev = outdev;
	fgptr->fiport = pcreate(FIPORTS);
	fgptr->foport = pcreate(FOPORTS);
	fgptr->ffport = pcreate(FFPORTS);
	fgptr->fosem = screate(0);
	fgptr->ftfuse = -1;
	fgptr->ftpid = 0;
	fgptr->fmachid = getmid(netid);
	fgptr->ftimproc = 
		create(frtimer, FRSTACK, FRTPRIO, "frtimer", 1, netid);
	resume( create(finput, FRSTACK, FRIPRIO, "finput", 1, netid) );
	resume( create(foutput,FRSTACK, FROPRIO, "foutpt", 1, netid) );
	return(OK);
#else
	return(SYSERR);
#endif
}

unix.superglobalmegacorp.com

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