sioreg
struct sioreg *sio = sc->sc_ctl;
struct sioreg *sc_ctl;
struct sioreg *sio;
setsioreg(struct sioreg *sio, int regno, int val)
getsiocsr(struct sioreg *sio)
struct sioreg *sio;
sio = (struct sioreg *)OBIO_SIO + channel;
struct sioreg *sio;
sio = (struct sioreg *)OBIO_SIO + ((int)dev & 0x1);
struct sioreg *sio;
sio = (struct sioreg *)OBIO_SIO + ((int)dev & 0x1);
struct sioreg *sc_ctl;
struct sioreg *sc_ctl;
int getsiocsr(struct sioreg *);
void setsioreg(struct sioreg *, int, int);
sioreg(REG(unit, WR0), WR0_ERRRST); /* Channel-A Error Reset */
while ((sioreg(REG(unit, RR0), 0) & RR0_TXEMPTY) == 0);
while ((sioreg(REG(unit, RR0), 0) & RR0_TXEMPTY) == 0);
sioreg(REG(0, WR0), WR0_CHANRST); /* Channel-A Reset */
sioreg(WR2A, WR2_VEC86 | WR2_INTR_1); /* Set CPU BUS Interface Mode */
sioreg(WR2B, 0); /* Set Interrupt Vector */
sioreg(REG(0, WR0), WR0_RSTINT); /* Reset E/S Interrupt */
sioreg(REG(0, WR4), WR4_BAUD96 | WR4_STOP1 | WR4_NPARITY); /* Tx/Rx */
sioreg(REG(0, WR3), WR3_RX8BIT | WR3_RXENBL); /* Rx */
sioreg(REG(0, WR5), WR5_TX8BIT | WR5_TXENBL | WR5_DTR | WR5_RTS); /* Tx */
sioreg(REG(0, WR0), WR0_RSTINT); /* Reset E/S Interrupt */
sioreg(REG(0, WR1), WR1_RXALLS); /* Interrupted All Char. */
sioreg(REG(1, WR0), WR0_CHANRST); /* Channel-A Reset */
sioreg(REG(1, WR0), WR0_RSTINT); /* Reset E/S Interrupt */
sioreg(REG(1, WR4), WR4_BAUD96 | WR4_STOP1 | WR4_NPARITY); /* Tx/Rx */
sioreg(REG(1, WR3), WR3_RX8BIT | WR3_RXENBL); /* Rx */
sioreg(REG(1, WR5), WR5_TX8BIT | WR5_TXENBL); /* Tx */
sioreg(REG(1, WR0), WR0_RSTINT); /* Reset E/S Interrupt */
sioreg(REG(1, WR1), WR1_RXALLS); /* Interrupted All Char. */
static int sioreg(int, int);
int rr0 = sioreg(REG(unit, RR0), 0);
int rr1 = sioreg(REG(unit, RR1), 0);