From f2152102de3a7eb8fe357f112e6f9fab3860cdc7 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Fri, 26 Mar 1993 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1993-03-26 --- pc/devuart.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/pc/devuart.c b/pc/devuart.c index c9931e5b6ceb6bfd7d45426cf13b2a37a25dffa6..d2ea4c28a00980f795f2c65e2783eea2e1e62a9c 100644 --- a/pc/devuart.c +++ b/pc/devuart.c @@ -799,6 +799,31 @@ uartclose(Chan *c) streamclose(c); } +long +uartstatus(Uart *up, void *buf, long n, ulong offset) +{ + uchar mstat; + uchar tstat; + char str[128]; + + str[0] = 0; + tstat = up->sticky[Mctl]; + mstat = uartrdreg(up, Mstat); + if(mstat & Cts) + strcat(str, " cts"); + if(mstat & Dsr) + strcat(str, " dsr"); + if(mstat & Ring) + strcat(str, " ring"); + if(mstat & Dcd) + strcat(str, " dcd"); + if(tstat & Dtr) + strcat(str, " dtr"); + if(tstat & Dtr) + strcat(str, " rts"); + return readstr(offset, buf, n, str); +} + long uartread(Chan *c, void *buf, long n, ulong offset) { @@ -807,8 +832,9 @@ uartread(Chan *c, void *buf, long n, ulong offset) case Qdir: return devdirread(c, buf, n, uartdir, NUart, devgen); case Qeia1ctl: + return uartstatus(&uart[1], buf, n, offset); case Qeia0ctl: - return 0; + return uartstatus(&uart[0], buf, n, offset); } return streamread(c, buf, n); }