From 4df5cdbd3afc33e8c0a0d18542899f3f88d2f22f Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 14 Jun 2021 23:23:19 -0400 Subject: [PATCH] sim: erc32: fix build w/out termios.h Add conditional logic around termios.h usage to fix builds on systems that don't have it (e.g. Windows). --- sim/erc32/ChangeLog | 8 ++++++++ sim/erc32/erc32.c | 12 ++++++++++++ 2 files changed, 20 insertions(+) diff --git a/sim/erc32/ChangeLog b/sim/erc32/ChangeLog index 311da252b6b..a5035d058f1 100644 --- a/sim/erc32/ChangeLog +++ b/sim/erc32/ChangeLog @@ -1,3 +1,11 @@ +2021-06-14 Mike Frysinger + + * erc32.c [HAVE_TERMIOS_H]: Include termios.h and declare ioc1, + ioc2, iocold1, & iocold2. + (init_stdio) [HAVE_TERMIOS_H]: Only call tcsetattr. + (restore_stdio) [HAVE_TERMIOS_H]: Likewise. + (port_init) [HAVE_TERMIOS_H]: Only call tcgetattr. + 2021-06-12 Mike Frysinger * erc32.c (uart_rx): Change caddr_t to void*. diff --git a/sim/erc32/erc32.c b/sim/erc32/erc32.c index 91f734c07db..e7a816f86bf 100644 --- a/sim/erc32/erc32.c +++ b/sim/erc32/erc32.c @@ -24,7 +24,9 @@ #include #include #include +#ifdef HAVE_TERMIOS_H #include +#endif #include #include #include @@ -235,7 +237,9 @@ static char wbufa[UARTBUF], wbufb[UARTBUF]; static unsigned wnuma; static unsigned wnumb; static FILE *f1in, *f1out, *f2in, *f2out; +#ifdef HAVE_TERMIOS_H static struct termios ioc1, ioc2, iocold1, iocold2; +#endif static int f1open = 0, f2open = 0; static char uarta_sreg, uarta_hreg, uartb_sreg, uartb_hreg; @@ -926,10 +930,12 @@ init_stdio(void) { if (dumbio) return; /* do nothing */ +#ifdef HAVE_TERMIOS_H if (!ifd1) tcsetattr(0, TCSANOW, &ioc1); if (!ifd2) tcsetattr(0, TCSANOW, &ioc2); +#endif } void @@ -937,10 +943,12 @@ restore_stdio(void) { if (dumbio) return; /* do nothing */ +#ifdef HAVE_TERMIOS_H if (!ifd1) tcsetattr(0, TCSANOW, &iocold1); if (!ifd2) tcsetattr(0, TCSANOW, &iocold2); +#endif } #define DO_STDIO_READ( _fd_, _buf_, _len_ ) \ @@ -979,11 +987,13 @@ port_init(void) if (sis_verbose) printf("serial port A on stdin/stdout\n"); if (!dumbio) { +#ifdef HAVE_TERMIOS_H tcgetattr(ifd1, &ioc1); iocold1 = ioc1; ioc1.c_lflag &= ~(ICANON | ECHO); ioc1.c_cc[VMIN] = 0; ioc1.c_cc[VTIME] = 0; +#endif } f1open = 1; } @@ -1008,11 +1018,13 @@ port_init(void) if (sis_verbose) printf("serial port B on stdin/stdout\n"); if (!dumbio) { +#ifdef HAVE_TERMIOS_H tcgetattr(ifd2, &ioc2); iocold2 = ioc2; ioc2.c_lflag &= ~(ICANON | ECHO); ioc2.c_cc[VMIN] = 0; ioc2.c_cc[VTIME] = 0; +#endif } f2open = 1; } -- 2.30.2