struct board_chan *bc; 
struct board_chan __iomem *bc; 
static void shutdown(struct channel *ch){ /* Begin shutdown */	unsigned long flags;	struct tty_struct *tty;	struct board_chan *bc;	if (!(ch->asyncflags & ASYNC_INITIALIZED)) 		return;	spin_lock_irqsave(&epca_lock, flags);	globalwinon(ch);	bc = ch->brdchan;	/* ------------------------------------------------------------------		In order for an event to be generated on the receipt of data the		idata flag must be set. Since we are shutting down, this is not 		necessary clear this flag.	--------------------------------------------------------------------- */ 	if (bc)		writeb(0, &bc->idata);	tty = ch->tty;	/* ----------------------------------------------------------------	   If we're a modem control device and HUPCL is on, drop RTS & DTR. 	------------------------------------------------------------------ */	if (tty->termios->c_cflag & HUPCL)  {		ch->omodem &= ~(ch->m_rts | ch->m_dtr);		fepcmd(ch, SETMODEM, 0, ch->m_dtr | ch->m_rts, 10, 1);	}	memoff(ch);	/* ------------------------------------------------------------------		The channel has officialy been closed.  The next time it is opened		it will have to reinitialized.  Set a flag to indicate this.	---------------------------------------------------------------------- */	/* Prevent future Digi programmed interrupts from coming active */	ch->asyncflags &= ~ASYNC_INITIALIZED;	spin_unlock_irqrestore(&epca_lock, flags);} /* End shutdown */
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/bc9a5154a24d16d41cc79dbf1442de34454bc7db/epca.c/buggy/drivers/char/epca.c