bc->rout = cmdHead; 
writew(cmdHead, &bc->rout); 
static void epcaparam(struct tty_struct *tty, struct channel *ch){ /* Begin epcaparam */	unsigned int cmdHead;	struct termios *ts;	struct board_chan *bc;	unsigned mval, hflow, cflag, iflag;	bc = ch->brdchan;	epcaassert(bc !=0, "bc out of range");	assertgwinon(ch);	ts = tty->termios;	if ((ts->c_cflag & CBAUD) == 0)  { /* Begin CBAUD detected */		cmdHead = readw(&bc->rin);		bc->rout = cmdHead;		cmdHead = readw(&bc->tin);		/* Changing baud in mid-stream transmission can be wonderful */		/* ---------------------------------------------------------------			Flush current transmit buffer by setting cmdTail pointer (tout)			to cmdHead pointer (tin).  Hopefully the transmit buffer is empty.		----------------------------------------------------------------- */		fepcmd(ch, STOUT, (unsigned) cmdHead, 0, 0, 0);		mval = 0;	} else  { /* Begin CBAUD not detected */		/* -------------------------------------------------------------------			c_cflags have changed but that change had nothing to do with BAUD.			Propagate the change to the card.		---------------------------------------------------------------------- */ 		cflag = termios2digi_c(ch, ts->c_cflag);		if (cflag != ch->fepcflag)  {			ch->fepcflag = cflag;			/* Set baud rate, char size, stop bits, parity */			fepcmd(ch, SETCTRLFLAGS, (unsigned) cflag, 0, 0, 0);		}		/* ----------------------------------------------------------------			If the user has not forced CLOCAL and if the device is not a 			CALLOUT device (Which is always CLOCAL) we set flags such that			the driver will wait on carrier detect.		------------------------------------------------------------------- */		if (ts->c_cflag & CLOCAL)			ch->asyncflags &= ~ASYNC_CHECK_CD;		else			ch->asyncflags |= ASYNC_CHECK_CD;		mval = ch->m_dtr | ch->m_rts;	} /* End CBAUD not detected */	iflag = termios2digi_i(ch, ts->c_iflag);	/* Check input mode flags */	if (iflag != ch->fepiflag)  {		ch->fepiflag = iflag;		/* ---------------------------------------------------------------			Command sets channels iflag structure on the board. Such things 			as input soft flow control, handling of parity errors, and			break handling are all set here.		------------------------------------------------------------------- */		/* break handling, parity handling, input stripping, flow control chars */		fepcmd(ch, SETIFLAGS, (unsigned int) ch->fepiflag, 0, 0, 0);	}	/* ---------------------------------------------------------------		Set the board mint value for this channel.  This will cause hardware		events to be generated each time the DCD signal (Described in mint) 		changes.		------------------------------------------------------------------- */	writeb(ch->dcd, &bc->mint);	if ((ts->c_cflag & CLOCAL) || (ch->digiext.digi_flags & DIGI_FORCEDCD))		if (ch->digiext.digi_flags & DIGI_FORCEDCD)			writeb(0, &bc->mint);	ch->imodem = readb(&bc->mstat);	hflow = termios2digi_h(ch, ts->c_cflag);	if (hflow != ch->hflow)  {		ch->hflow = hflow;		/* --------------------------------------------------------------			Hard flow control has been selected but the board is not			using it.  Activate hard flow control now.		----------------------------------------------------------------- */		fepcmd(ch, SETHFLOW, hflow, 0xff, 0, 1);	}	mval ^= ch->modemfake & (mval ^ ch->modem);	if (ch->omodem ^ mval)  {		ch->omodem = mval;		/* --------------------------------------------------------------			The below command sets the DTR and RTS mstat structure.  If			hard flow control is NOT active these changes will drive the			output of the actual DTR and RTS lines.  If hard flow control 			is active, the changes will be saved in the mstat structure and			only asserted when hard flow control is turned off. 		----------------------------------------------------------------- */		/* First reset DTR & RTS; then set them */		fepcmd(ch, SETMODEM, 0, ((ch->m_dtr)|(ch->m_rts)), 0, 1);		fepcmd(ch, SETMODEM, mval, 0, 0, 1);	}	if (ch->startc != ch->fepstartc || ch->stopc != ch->fepstopc)  {		ch->fepstartc = ch->startc;		ch->fepstopc = ch->stopc;		/* ------------------------------------------------------------			The XON / XOFF characters have changed; propagate these			changes to the card.			--------------------------------------------------------------- */		fepcmd(ch, SONOFFC, ch->fepstartc, ch->fepstopc, 0, 1);	}	if (ch->startca != ch->fepstartca || ch->stopca != ch->fepstopca)  {		ch->fepstartca = ch->startca;		ch->fepstopca = ch->stopca;		/* ---------------------------------------------------------------			Similar to the above, this time the auxilarly XON / XOFF 			characters have changed; propagate these changes to the card.		------------------------------------------------------------------ */		fepcmd(ch, SAUXONOFFC, ch->fepstartca, ch->fepstopca, 0, 1);	}} /* End epcaparam */
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/bc9a5154a24d16d41cc79dbf1442de34454bc7db/epca.c/buggy/drivers/char/epca.c