volatile struct clreg *cl_reg;
struct clreg *cl_reg;
clgetc(sc, channel)	struct clsoftc *sc;	int *channel;{	volatile struct clreg *cl_reg;	volatile struct pcctworeg *pcc2_base;	u_char val, reoir, licr, isrl, fifo_cnt, data;	if (0 == sc) {		cl_reg = cl_cons.cl_vaddr;		pcc2_base = cl_cons.pcctwoaddr;	} else {		cl_reg = sc->cl_reg;		pcc2_base = sc->sc_pcctwo;	}	val = cl_reg->cl_rir;	/* if no receive interrupt pending wait */	if (!(val & 0x80)) {		return 0;	}	/* XXX do we need to suck the entire FIFO contents? */	reoir = pcc2_base->pcc2_sccrxiack; /* receive PIACK */	licr = cl_reg->cl_licr;	*channel = (licr >> 2) & 0x3;	/* is the interrupt for us (port 0) */	/* the character is for us yea. */	isrl = cl_reg->cl_risrl;#if 0	if (isrl & 0x01) {		status = BREAK;	}	if (isrl & 0x02) {		status = FRAME;	}	if (isrl & 0x04) {		status = PARITY;	}	if (isrl & 0x08) {		status = OVERFLOW;	}	/* we do not have special characters ;-) */#endif	fifo_cnt = cl_reg->cl_rfoc;	if (fifo_cnt > 0) {		data = cl_reg->cl_rdr;		cl_reg->cl_teoir = 0x00;	} else {		data = 0;		cl_reg->cl_teoir = 0x08;	}	return data;}