-ASRCS = crt0.s tricks.s commonmem.s sc114.s usermem.s
+ASRCS = crt0.s tricks.s commonmem.s sc114.s usermem.s scm_monitor.s
CSRCS = devices.c main.c devtty.c ide.c
DISCARD_CSRCS = discard.c
DISCARD_DSRCS = ../dev/devide_discard.c ../dev/ds1302_discard.c
_LSYS
};
-static tcflag_t uart1_mask[4] = {
- _ISYS,
- _OSYS,
- CBAUD|CSYS,
- _LSYS,
-};
-
tcflag_t *termios_mask[NUM_DEV_TTY + 1] = {
NULL,
uart0_mask,
- uart1_mask
+ uart0_mask
};
struct s_queue ttyinq[NUM_DEV_TTY + 1] = { /* ttyinq[0] is never used */
void tty_setup(uint8_t minor, uint8_t flags)
{
tcflag_t *tptr = &ttydata[minor].termios.c_cflag;
- uint8_t baud = *tptr & CBAUD;
+ /* Safe as we are little endian */
+ uint8_t old = *tptr;
+ uint8_t baud = old & CBAUD;
+
+ used(flags);
+
if (baud < B300) {
baud = B300;
- *tptr &= ~CBAUD;
- *tptr |= B300;
+ old &= ~CBAUD;
+ *tptr = old | B300;
}
- scm_setbaud(((uint16_t)minor) << 8) |baudmap[baud]);
+ if (!scm_setbaud((((uint16_t)minor) << 8) |baudmap[baud]))
+ *tptr = old;
}
int tty_carrier(uint8_t minor)
{
+ used(minor);
return 1;
}
void tty_sleeping(uint8_t minor)
{
+ used(minor);
}
void tty_data_consumed(uint8_t minor)
{
+ used(minor);
}
/* kernel writes to system console -- never sleep! */