From 43a321bbefa34fe14abaa79d364884a5fd3d748d Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sat, 5 Jan 2019 21:19:15 +0000 Subject: [PATCH] sc114: get it building --- Kernel/platform-sc114/Makefile | 2 +- Kernel/platform-sc114/devtty.c | 26 ++++++++++++++------------ Kernel/platform-sc114/devtty.h | 2 +- Kernel/platform-sc114/discard.c | 1 + Kernel/platform-sc114/fuzix.lnk | 1 + 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Kernel/platform-sc114/Makefile b/Kernel/platform-sc114/Makefile index eb58531c..5c8d67c6 100644 --- a/Kernel/platform-sc114/Makefile +++ b/Kernel/platform-sc114/Makefile @@ -1,4 +1,4 @@ -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 diff --git a/Kernel/platform-sc114/devtty.c b/Kernel/platform-sc114/devtty.c index 759ed278..69b299c7 100644 --- a/Kernel/platform-sc114/devtty.c +++ b/Kernel/platform-sc114/devtty.c @@ -25,17 +25,10 @@ static tcflag_t uart0_mask[4] = { _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 */ @@ -62,17 +55,24 @@ static uint8_t baudmap[] = { 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; } @@ -116,10 +116,12 @@ ttyready_t tty_writeready(uint8_t minor) void tty_sleeping(uint8_t minor) { + used(minor); } void tty_data_consumed(uint8_t minor) { + used(minor); } /* kernel writes to system console -- never sleep! */ diff --git a/Kernel/platform-sc114/devtty.h b/Kernel/platform-sc114/devtty.h index 669c287f..e40f6d38 100644 --- a/Kernel/platform-sc114/devtty.h +++ b/Kernel/platform-sc114/devtty.h @@ -2,7 +2,7 @@ #define __DEVTTY_DOT_H__ void tty_putc(uint8_t minor, unsigned char c); -void tty_pollirq_sio(void); +void tty_pollirq(void); extern uint8_t numtty; diff --git a/Kernel/platform-sc114/discard.c b/Kernel/platform-sc114/discard.c index 209544ae..829ba8ee 100644 --- a/Kernel/platform-sc114/discard.c +++ b/Kernel/platform-sc114/discard.c @@ -5,6 +5,7 @@ #include #include #include +#include #include "config.h" void map_init(void) diff --git a/Kernel/platform-sc114/fuzix.lnk b/Kernel/platform-sc114/fuzix.lnk index a168196a..19f48fb8 100644 --- a/Kernel/platform-sc114/fuzix.lnk +++ b/Kernel/platform-sc114/fuzix.lnk @@ -41,4 +41,5 @@ platform-sc114/usermem.rel platform-sc114/ds1302.rel platform-sc114/ds1302_discard.rel platform-sc114/ds1302_rc2014.rel +platform-sc114/scm_monitor.rel -e -- 2.34.1